我有两个连接可排序列表。我想在一个项目从当前列表移开时触发一个事件,但是不要在另一个连接列表中或者正在对项目进行排序时触发事件。有谁知道怎么做?
我在这里要做的是让用户通过将项目从列表中拖出来删除项目。
答案 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的out
和over
事件来跟踪元素何时进入和退出该区域。在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"
});