2

ノックアウト外部テンプレートエンジンを使用して、Webページのセクションを作成しています。テンプレートの中には、関数を実行したいulがあります。

<ul id="myTags"></ul

したがって、たとえば、テンプレートがサーバーからロードされたら、いくつかのメソッドを呼び出したいと思います。

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

テンプレートがサーバーからダウンロードされ、ドキュメントに挿入されたら、このメソッドを呼び出すにはどうすればよいですか?注これは複数回発生する可能性があります。

4

2 に答える 2

4

templateバインディングには、afterRender新しい要素を処理するために使用できるコールバックがあります:http: //knockoutjs.com/documentation/template-binding.html#note_3_using_afterrender_afteradd_and_beforeremove

要素で何をしたいのかわかりませんが、この目的のためにカスタムバインディングを使用することを検討します。カスタムバインディングについて説明します:http://knockoutjs.com/documentation/custom-bindings.htmlおよびhttp://www.knockmeout.net/2011/07/another-look-at-custom-bindings-for.html

カスタムバインディングの機能を使用するだけでもinit、テンプレートがレンダリングされるたびに実行されます。

于 2012-10-04T20:34:32.387 に答える
0

私がこれを行う方法は、jQuerylivequeryプラグインを使用することです。

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

もっと良い方法はありますか?

于 2012-10-04T10:08:47.937 に答える