更新绑定与jQuery排序

Updating binding with jQuery sortable?

本文关键字:排序 jQuery 绑定 更新      更新时间:2023-09-26

我有一个可排序的fixture列表,它是使用foreach绑定从observableArray填充的。阵列中每个夹具的参数之一是position

该位置反映了夹具排序的顺序。默认情况下,当使用foreach插入固定装置时,位置编号的顺序是正确的,但是当您通过拖动项目对列表进行排序时,位置编号将使用jQuery更新:

$( "#picks" ).sortable({
    revert: true,
    placeholder: "placeholder",
    containment: 'parent',
    axis: "y",
    handle: '.dragHandle',
    update: function() {
        for (var i = 1; i <= $('#picks li').length; i++) {
            $('#picks li:nth-child('+i+')').find('span.num').text(i);
        }
    }
});

所以,位置数字确实改变了,但由于数字是在没有引用可观察对象的情况下更新的,所以可观察对象本身没有更新。我的问题是,如何使用jQuery的更新函数来更新可观察对象。

我不想让数字作为输入,所以使用带有值绑定的输入是不可行的!

演示小提琴

您需要一个排序表的绑定处理程序。如果在绑定处理程序之外弄乱了DOM,就会出现这样的问题。作者甚至在github页面底部提供了一些演示工具的链接。