如何在加载Knockout.js模板时触发事件

时间:2012-10-04 09:48:17

标签: javascript knockout.js template-engine

我正在使用淘汰赛外部模板引擎来创建我的网页的一部分。模板里面有一个ul,我想在其上执行一个函数。

<ul id="myTags"></ul

因此,例如,一旦从服务器加载模板,我想调用一些方法:

$("#myTags").doSomething(...)

从服务器下载模板并插入文档后,如何调用此方法?注意这可能不止一次发生....

2 个答案:

答案 0 :(得分:4)

template绑定确实有一个afterRender回调,可用于处理新元素:http://knockoutjs.com/documentation/template-binding.html#note_3_using_afterrender_afteradd_and_beforeremove

我不知道你想对你的元素做什么,但我会考虑为此目的使用自定义绑定。描述了自定义绑定:http://knockoutjs.com/documentation/custom-bindings.htmlhttp://www.knockmeout.net/2011/07/another-look-at-custom-bindings-for.html

即使您只使用自定义绑定的init功能,它也会在每次渲染模板时运行。

答案 1 :(得分:0)

我这样做的方式是使用jQuery livequery插件:

    $('#myTags').livequery(doSomething);

有更好的方法吗?