我有几个 knockout foreach模板绑定(bind),它们在我的页面的不同位置创建了大约100个<div class='item' />-一切正常,除了我随后的jQuery调用不起作用,除非我在调试器中停止并等待一秒钟,然后再应用jquery绑定(bind):

ko.applyBindings(viewModel);

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

我一直在寻找一个dataBound事件,该事件可用于在绑定(bind)viewModel之后应用绑定(bind),但是我什么也没找到。

最佳答案

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

您还可以编写自己的自定义绑定(bind)来执行相同的操作,类似于this example。我建议将其作为最可维护和可重用的选项,但有时它会过分杀伤力。

就是说,如果您想使用Draggable,那么已经有一个great custom binding了,您也许可以适应它。

希望这可以帮助。

10-04 22:06
查看更多