我有几个 knockout foreach模板绑定(bind),它们在我的页面的不同位置创建了大约100个<div class='item' />
-一切正常,除了我随后的jQuery调用不起作用,除非我在调试器中停止并等待一秒钟,然后再应用jquery绑定(bind):
ko.applyBindings(viewModel);
$(".item").draggable();
我一直在寻找一个dataBound事件,该事件可用于在绑定(bind)viewModel之后应用绑定(bind),但是我什么也没找到。
最佳答案
正如Tyrsius提到的,您可以使用afterRender处理程序,也可以使用afterAdd处理程序,具体取决于您是否要从列表中添加/删除项目。这些都包含在foreach和template绑定(bind)文档中。
您还可以编写自己的自定义绑定(bind)来执行相同的操作,类似于this example。我建议将其作为最可维护和可重用的选项,但有时它会过分杀伤力。
就是说,如果您想使用Draggable,那么已经有一个great custom binding了,您也许可以适应它。
希望这可以帮助。