jQuery UI Sortable - 更改被动项的事件

时间:2017-01-04 12:42:20

标签: javascript jquery jquery-ui jquery-ui-sortable

我正在尝试在被动项目上捕获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)上。 是否有任何公共活动要注册所有改变位置的项目?

1 个答案:

答案 0 :(得分:0)

我在拖动项目的同时创建了一个jsfiddle演示事件触发,每个元素都改变了位置。在那些事件发生时,我将这些记录在控制台中,以便您可以检查它们是否正常工作。用户开始拖动项目时会触发start( event, ui )事件,并且当每个项目被起始项目移动时会触发change( event, ui )事件。