【发布时间】:2015-08-18 11:28:11
【问题描述】:
我有一些放置区域 $('.drophere') 和一个可拖动的存储 $('.dragme')。 每个放置区域只能包含一个放置的物品。
您可以将新项目放置在已放置的项目上(替换)。您可以将一个项目从一个放置区域拖到另一个放置区域。
如果您开始从放置区域拖动一个项目并决定将其放回同一区域 - 不会触发放置事件,因此拖动的项目会丢失。
这里是简化的代码:
var draggedData;
$('.drophere').droppable({
drop: function (event, ui) {
$(this).attr('data-text', draggedData);
$(this).draggable('enable');
}
}).draggable({
disabled: true,
helper: "clone",
start: function (event, ui) {
draggedData = $(this).attr('data-text');
$(this).attr('data-text', "").draggable('disable');
}
});
$('.dragme').draggable({
helper: "clone",
start: function (event, ui) {
draggedData = $(this).attr('data-text');
}
});
在 jQuery UI droppable 中是否存在某种限制?有什么方法可以“忘记”这种拖动项目的起源吗?谢谢。
【问题讨论】:
-
与其“忘记原点”不能用
stop吗? -
如果您在 jsfiddle 中使用一些 HTML 发布此内容会很有用
-
添加了 jsfiddle。你是什么意思 - 停止?
-
当物品被丢弃时触发停止,无论它被丢弃在哪里。如果该项目已被丢弃在其他地方,您可以签入该功能。 jsfiddle.net/gpnpwwbw/3
-
stop 意味着我已经自己测试了所有 dom 的可能放置区域。我更喜欢使用 drop 事件。
标签: javascript jquery-ui drag-and-drop jquery-ui-draggable jquery-ui-droppable