我正在尝试在被动项目上捕获jQuery UI Sortable的更改事件,例如:
给出这个清单:
1
2
3
4
我将3号移到顶部:
3
2
1
4
我改变了3个元素的位置,我想要抓住所有3个元素的变化事件(3,2,1)
目前我有一个启动和更改事件的代码,如下所示:
start: function (event, ui) {
if (ui.item.data('startPos') == null) {
ui.item.data('startPos', ui.item.index());
}
},
change: function (event, ui) {
var startPos = ui.item.data('startPos');
var newPos = ui.placeholder.index();
if (startPos != null && startPos != newPos) {
ui.item.addClass('sort-dirty');
ui.item.attr('data-newSortOrder', newPos);
} else {
ui.item.removeClass('sort-dirty');
}
}
但是这些事件只发生在“触及”(3)的单个元素而不是“被动”元素(1,2)上。 是否有任何公共活动要注册所有改变位置的项目?
答案 0 :(得分:0)
我在拖动项目的同时创建了一个jsfiddle演示事件触发,每个元素都改变了位置。在那些事件发生时,我将这些记录在控制台中,以便您可以检查它们是否正常工作。用户开始拖动项目时会触发start( event, ui )
事件,并且当每个项目被起始项目移动时会触发change( event, ui )
事件。