我已经设置了jsFiddle Example我正在使用jsViews和JQuery sortable。如果您没有更改任何内容,删除工作正常;但是如果您更改表中项目的顺序,然后删除任何项目,它会删除多个项目。我该如何解决?我假设有一种方法可以在移动完成后刷新观察者。
$("#sortableQuestionArea").sortable({
placeholder: "ui-state-highlight",
handle: ".sort-handle",
update: function(event, ui) {
// refresh code here??
}
});
答案 0 :(得分:2)
这是jQueryUI可排序 - 当您拖放时执行DOM操作。但是,如果您使用JsViews创建数据驱动的UI,那么您的UI需要是数据驱动的 - 并且要更改排序数据所需的顺序,而不是UI。
UI不能同时通过移动DOM元素来进行数据驱动和操作。通常,将两者混合是不可能的或非常脆弱的。无论您使用什么数据绑定框架(JsViews,Knockout或其他一些框架......),这都适用。
请注意,在您的示例中,删除和插入项目使用的是数据驱动方法 - 而不是直接添加或删除DOM元素。这是用于数据驱动的UI的正确模式...