gpt4 book ai didi

javascript - 如何使div可拖放

转载 作者:行者123 更新时间:2023-11-29 09:52:02 24 4
gpt4 key购买 nike

我的项目中剩下的一件事是让两个 div 同时可拖放。现在我有了可以拖放的 div 的工作代码但是例如我可以从目标区域拖动一个 div 并将它放到用户区域但是我似乎无法想出一种方法来从用户拖动这些 div 并分配给不同的用户。

$(document).ready(function(){
$(".dragable").draggable({
cancel: "a.ui-icon",
revert: true,
helper: "clone",
cursor: "move",
revertDuration: 0
});

$('.droppable').droppable({
accept: ".dragable",
activeClass: "ui-state-highlight",
drop: function( event, ui ) {
// clone item to retain in original "list"
var $item = ui.draggable.clone();
$(this).addClass('has-drop').append($item);
}
});
});

http://jsfiddle.net/coder880/TpbZk/31/

最佳答案

问题是因为一旦项目被拖/放,它就会被克隆。此克隆没有实例化 draggable() 插件。您需要再次调用 $item 上的 draggable()。试试这个:

var draggableOptions = {
cancel: "a.ui-icon",
revert: true,
helper: "clone",
cursor: "move",
revertDuration: 0
}

$(".dragable").draggable(draggableOptions);

$('.droppable').droppable({
accept: ".dragable",
activeClass: "ui-state-highlight",
drop: function(event, ui) {
var $item = ui.draggable.clone();
$item.draggable(draggableOptions);
$(this).addClass('has-drop').append($item);
}
});

Updated fiddle

it should only be cloned when its from target otherwise it should move it.

要实现这一点,您需要删除克隆的可拖动元素中的 helper: 'clone' 选项,并在该元素上维护一个标志,以确定它是全新的克隆还是之前被拖动过又搬家了。为此,您可以使用类,如下所示:

$(".dragable").draggable({
cancel: "a.ui-icon",
revert: true,
helper: "clone",
cursor: "move",
revertDuration: 0
});

$('.droppable').droppable({
accept: ".dragable",
activeClass: "ui-state-highlight",
drop: function(event, ui) {
var $item = $(ui.draggable)
if (!$item.hasClass('clone')) {
$item = $item.clone().addClass('clone');
$item.draggable({
cancel: "a.ui-icon",
revert: true,
cursor: "move",
revertDuration: 0
});
}
$(this).addClass('has-drop').append($item);
}
});

Example fiddle

关于javascript - 如何使div可拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35085802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com