javascript - Knockout JS + JQuery UI - 在重新排序后从可观察数组中删除项目的问题

标签 javascript jquery jquery-ui knockout.js

我有一个可观察数组绑定(bind)到一个列表,该列表使用 JQuery-ui 通过拖放进行重新排序。我还希望能够从可观察数组中删除项目。一切似乎都工作正常,直到我尝试删除已重新订购的商品。

考虑以下 JsFiddle 代码:http://jsfiddle.net/4mMfE/

尝试将“熊”拖到列表中的第三项,然后将其删除,似乎不起作用,但您可以删除其他项。

有人知道如何让它按预期工作吗?

我有一种感觉,这与 viewModel 的可观察数组的顺序与页面上显示的元素的实际顺序不同步有关。

.

最佳答案

你是对的,这与用户正在更改 DOM 中项目的顺序并且它没有在 observableArray 中更新这一事实有关,所以当你去删除一个项目时,它不能被更新找到了。

您需要的是一个自定义绑定(bind),它监听重新排序事件并相应地更新模型。方便的是,这已经存在于 jQuery UI 可排序中: https://github.com/rniemeyer/knockout-sortable

关于javascript - Knockout JS + JQuery UI - 在重新排序后从可观察数组中删除项目的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19201852/

相关文章:

javascript - 将 Javascript 对象数组转换为 Javascript 数组

jquery - 如何使用 jQuery 检测浏览器是否为 Chrome?

javascript - AngularJs:根据路线隐藏导航栏元素?

javascript - getElementById 的多个 ID

jquery - 如何在 div 类或 id 上设置 anchor

jquery - .hover(...) 等等。 ("hover"...) 行为不同

javascript - jQuery 变量 : Setting variables for the entire file

JQuery UI问题,如何将变量添加到对话框中

jquery - Jquery 中的菜单和菜单项方向问题

javascript - Material 设计和 jQuery,滚动不起作用