Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何呼叫';改变';仅当节点重新排序时才发生事件_Jquery_Events_Treeview - Fatal编程技术网

Jquery 如何呼叫';改变';仅当节点重新排序时才发生事件

Jquery 如何呼叫';改变';仅当节点重新排序时才发生事件,jquery,events,treeview,Jquery,Events,Treeview,我有一棵可嵌套的树,它的设计如下 我只想在节点被重新排序时触发这个onchange方法。但现在,当前的功能是当我单击类'dd handle'的元素时,onchange事件被触发,服务器端脚本被调用 这是因为在296线附近,我们有 'this.el.trigger('change');' 我只想在重新排序列表时触发此更改事件。在pageload上保存初始顺序。在变更事件中,将新订单与旧订单进行比较。如果它们不同,则已更改订单: var idList = getIdList(); $('.dd'

我有一棵可嵌套的树,它的设计如下

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

这是因为在296线附近,我们有 'this.el.trigger('change');'
我只想在重新排序列表时触发此更改事件。

在pageload上保存初始顺序。在变更事件中,将新订单与旧订单进行比较。如果它们不同,则已更改订单:

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;
}

演示:

您使用的插件是什么?仅更改节点上的级别时,插件不起作用。我们如何知道行级别已更改?