我有一个可排序且排序良好的元素列表。我还有一个驻留在可排序列表之外的droppable。当我将项目放在droppable上时,它的目的是执行复制操作,这意味着在此操作期间不需要排序。
然而,不幸的是,将可排序对象拖到外部可丢弃对象会导致触发sortable.update。如果一个可排序的对象被拖出一个给定的元素,有没有一种方法可以忽略所有可排序的拖放事件?
我已经检查了所有相关的可排序事件,但我似乎找不到任何指向可排序元素的引用,以便查看它们是否具有共同的父级。
这里有一个可以演示的小提琴:http://jsfiddle.net/6yhbG/
将可排序的1/2拖动到droppable会导致触发sortable.sort。
发布于 2013-01-20 14:59:49
好了,最后弄清楚了:需要从sortable.stop调用sortable('cancel'),我只是向可排序对象添加了一个类,以便它知道是否取消自身:
$('div').droppable({
drop: function(e, ui) {
ui.draggable.parent().addClass('dropped');
}
});
$('ul').sortable({
stop: function(){
if ($(this).hasClass('dropped')){
$(this).sortable('cancel');
$(this).removeClass('dropped');
}
}
});我的更新示例位于:http://jsfiddle.net/6yhbG/1/
https://stackoverflow.com/questions/14422041
复制相似问题