gpt4 book ai didi

javascript - 拖放后销毁可拖动对象时出错

转载 作者:搜寻专家 更新时间:2023-11-01 05:13:01 24 4
gpt4 key购买 nike

当我尝试在删除可拖动对象后销毁它时,我在 jQuery UI 中收到错误消息。我正在使用 jQuery 1.9.1 和 jQuery UI 1.10.0。

脚本

$(".drag").draggable({
revert: "invalid",
helper: "clone"
});

$(".drop").droppable({
accept: ".drag",
drop: function(event,ui){
ui.helper.remove();
$(this).append(ui.draggable);
$(ui.draggable).draggable("destroy");
}
});

HTML

<div class="drag">Draggable</div>
<div class="drop">Droppable</div>

示例: http://jsfiddle.net/feDME/

收到错误

TypeError: $(...).data(...) is undefined

在过去的几个小时里,我一直在做这件事,但没有成功。我发现了一个类似的帖子,但没有包含决议。有人可以帮我从这里出去吗?谢谢!

最佳答案

jquery-ui 可拖动代码中似乎存在竞争条件,它会在拖动停止时尝试设置光标。以下行失败,因为调用停止时“可拖动”数据尚未附加到可拖动 div。

var o = $(this).data('draggable').options;

这有点麻烦,但这个 setTimeout 会解决它。

$(".drop").droppable({
accept: ".drag",
drop: function(event,ui){
ui.helper.remove();
$(this).append(ui.draggable);
setTimeout(function() {
$(ui.draggable).draggable("destroy");
}, 0);
}
});

关于javascript - 拖放后销毁可拖动对象时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15505763/

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