gpt4 book ai didi

javascript - droppable 触发两次的 jQuery UI drop 事件

转载 作者:行者123 更新时间:2023-11-29 20:40:57 24 4
gpt4 key购买 nike

HTML

<div id="dropableArea">Drop area</div>
<ul>
<li class="dragModule">Item 1</li>
<li class="dragModule">Item 2</li>
<li class="dragModule">Item 3</li>
</ul>

JQuery

$(function(){
$('.dragModule').draggable({connectToSortable:'#dropableArea',helper: 'clone'});

$('#dropableArea').droppable({
accept: '.dragModule',
activeClass:'active-droppable',
drop:function(){
console.log('drop');
}
});

$('#dropableArea').sortable({accept: '.dragModule',connectWith: '#dropableArea',revert: true,});
$("#dropableArea").disableSelection();
});

我的问题是我控制台 console.log('drop');这是一个可放置的回调放置函数,它被调用了两次。

最佳答案

这是 jQuery UI 的一个已知问题。当您在同一元素上使用 droppable 和 sortable 时会出现此问题。在这里,您在同一元素 droppableArea 上使用了 droppable 和 sortable为了解决这个问题,使用 sortablerecieve 方法代替 droppabledrop 方法。两者在您的情况下做同样的事情。

检查 FIDDLE

$(function() {
$('.dragModule').draggable({
connectToSortable: '#dropableArea',
helper: 'clone'
});

$('#dropableArea').droppable({
accept: '.dragModule',
activeClass: 'active-droppable'
});

$('#dropableArea').sortable({
accept: '.dragModule',
connectWith: '#dropableArea',
revert: true,
receive: function (event, ui) {
console.log("drop");
}
});
$("#dropableArea").disableSelection();
});

如上修改代码即可解决问题。如果问题已解决,请告诉我

#UPDATE

可以在sortable函数中加入如下代码

 beforeStop : function (event, ui) {      
ui.helper.html('hello');
}

关于javascript - droppable 触发两次的 jQuery UI drop 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55535947/

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