Jquery Sortable,通过拖出删除当前项

Pet*_*ter 23 javascript jquery jquery-ui-sortable

我的问题:可排序的事件:当我在列表中拖动某些内容或者对列表进行排序时触发.但我只想在拖出项目时启动该功能.

我的代码

        $(document).ready(function ust()
        {    
            $('#div1').sortable({
                out: function(event, ui) { $('#nfo').append('OUT<br />'); }
            });

        });
Run Code Online (Sandbox Code Playgroud)

工作示例 http://jsfiddle.net/FrbW8/22/

小智 37

使用beforeStop拦截项目并将其删除:

receive: function(e, ui) { sortableIn = 1; },
over: function(e, ui) { sortableIn = 1; },
out: function(e, ui) { sortableIn = 0; },
beforeStop: function(e, ui) {
   if (sortableIn == 0) { 
      ui.item.remove(); 
   } 
}
Run Code Online (Sandbox Code Playgroud)

(我最初在谷歌找到了这个,但是再也找不到链接.所以,我为没有引用来源而道歉.)

  • 这是链接:http://forum.jquery.com/topic/drag-item-out-of-a-sortable (3认同)

gui*_*eva 5

其他解决方案似乎不适用于连接的可排序列表,因此我发布了我自己的解决方案,该解决方案非常适合我的情况。当元素被拖放到可排序列表之外时,这利用了“droppable”插件来捕获“drop”事件。

$('#div1').sortable({
    ....
}).droppable({greedy: true})

$('body').droppable({
    drop: function ( event, ui ) {          
        ui.draggable.remove();
    }
});
Run Code Online (Sandbox Code Playgroud)

这是这种方法的 jsfiddle 实际操作:http://jsfiddle.net/n3pjL/


red*_*are 4

这是 out 回调的默认行为。请参阅此 jquery ui trac 票证

我真的不同意“逻辑”行为概念。

“但是,请注意,如果您拖动到列表中然后释放鼠标,仍然会触发“out”回调(但如果您不在列表上方则不会)。这是合乎逻辑的行为,并且对于普通的可排序也会发生。 ”