1

我有一个可嵌套的树,其设计如下 https://gist.github.com/Achaius/5291761

我只想在节点重新排序时触发这个 onchange 方法。但是现在当前的功能是当我单击类“dd-handle”的元素时,触发 onchange 事件并调用服务器端脚本。

发生这种情况是因为在第 296 行附近,我们有 'this.el.trigger('change');' 仅当我重新排序列表时,我才想触发此更改事件。

4

1 回答 1

3

保存页面加载的初始顺序。在您的更改事件中,将新订单与旧订单进行比较。如果它们不同,则已进行了订单更改:

var idList = getIdList();

$('.dd').nestable();

$('.dd').on('change', function (event) {
    var newIDList = getIdList();

    if (newIDList != idList) {
        console.log("Order has been changed");
        idList = newIDList;
    }
});

function getIdList() {
    var idList = '';
    $('.dd-item').each(function () {
        idList += $(this).data('id');
    });

    return idList;
}

演示:http: //jsfiddle.net/94NNb/1/

于 2013-04-02T13:24:55.383 回答