我有一个可嵌套的树,其设计如下 https://gist.github.com/Achaius/5291761
我想只在重新排序节点时触发这个onchange方法。但是现在当前的功能是当我单击'dd-handle'类的元素时,onchange事件正在触发并且调用服务器端脚本。
这种情况正在发生,因为在线:296,我们有 'this.el.trigger(' 改变 ');' 我只想在重新排序列表时触发此更改事件。
答案 0 :(得分: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;
}