如何判断jQuery UI可排序元素何时被移动并处于无效状态

时间:2010-07-09 16:48:45

标签: jquery jquery-ui-sortable

我有两个连接可排序列表。我想在一个项目从当前列表移开时触发一个事件,但是不要在另一个连接列表中或者正在对项目进行排序时触发事件。有谁知道怎么做?

我在这里要做的是让用户通过将项目从列表中拖出来删除项目。

2 个答案:

答案 0 :(得分:3)

只要将对象拖到列表外,您就可以观察$(".selector").sortable({out: function(e, ui) {});来设置变量。如果它被释放,则触发.sortable({stop: function(e, ui) {});。如果在.sortable({over: function(e, ui) {});触发器后未调用out,则可以判断对象是否未放在列表中。

答案 1 :(得分:1)

Ian Wetherbee's answer上构建,您还可以使sortables可以放置并使用doppable的outover事件来跟踪元素何时进入和退出该区域。在jQuery demo的基础上,您可以添加如下功能:

var isInside = true;

$("#sortable1, #sortable2").sortable({
    connectWith: '.connectedSortable',
    stop: function() { alert(isInside) }
})
.droppable({
    over: function() { isInside = true; },
    out: function() { isInside = false; },
    accept: "li"
});

以下是演示:http://jsfiddle.net/wy2AY/