6

我有几个 knockoutjs foreach 模板绑定,它们<div class='item' />在整个页面的不同位置创建了大约 100 个 - 除了我后续的 jQuery 调用不起作用之外,除非我在调试器中停止并在应用 jquery 绑定之前等待一秒钟,否则所有这些都可以正常工作:

ko.applyBindings(viewModel);

$(".item").draggable(); 

我正在寻找一个 dataBound 事件,我可以在绑定 viewModel 之后使用它来应用我的绑定,但我没有找到任何东西。

4

1 回答 1

1

正如 Tyrsius 提到的,您可以使用 afterRender 处理程序,也可以使用 afterAdd 处理程序,具体取决于您是否要从列表中添加/删除项目。这些都包含在foreach模板绑定文档中。

您也可以编写自己的自定义绑定来执行相同的操作,类似于此示例。我推荐它作为最可维护和可重用的选项,但它有时是矫枉过正的。

也就是说,如果你想使用 draggable,那么已经有一个很棒的自定义绑定,你也许可以适应它。

希望这可以帮助。

于 2012-05-29T18:23:54.813 回答