2012-03-31 17 views
2

を働いていない私は、このように見てonloadイベントにTwitterのブートストラップツールチップとポップオーバーをロードスニペットを持っている:KnockoutJSテンプレートやTwitterのブートストラップ/ jQueryのツールチップが

$('i[rel=tooltip]').tooltip({ 
    placement: "left" 
}); 

私はKnockoutJSのテンプレートを追加するまで、静的なHTMLと正常に動作します(簡潔さのため省略されたコード):

<div class="row-fluid" data-bind="foreach: events.slice(paginationStart, paginationStop())"> 
    ... 
    <li> 
     <i class="icon-calendar" rel="tooltip" data-original-title="Date"></i> <span data-bind="text: start">event.date</span> 
    </li> 
    ... 
</div> 

ツールチップがまったく表示されません。私は匿名と通常のKnockoutJSテンプレートの両方を試しました

私は、何が起こっているのか分かりました:KnockoutJSテンプレートは、Twitter Bootstrap JSファイルをインポートした後にテンプレートがonloadで実行されるため、しかし、私はそれについて何をすべきかわかりません。私はko.applyBindingsの後にJQueryを入れようとしましたが、それはどちらもうまくいきませんでした。

+1

Hmmm ...私はafterRenderプロパティを探しているようです。私はそれを試してみましょう。 – Magnus

+0

あなたの所見/解決策を答えとして投稿し、それを承認して質問に閉じ込めば、将来的にはより多くの人々を助けるでしょう。 –

答えて

2

私はこの質問を書いた後にかなり素早く理解しました。私がそれを逃したとは信じられません。答えは、KnockoutJSのtempRatingからのafterRenderコールバックのTwitter Bootstrap Javascript Plugin/JQueryを行うことです。

例:属性をdata-bind="template: { foreach: data, afterRender: bootstrapDecorate }"に変更し、bootstrapDecorateをbody.onload関数で以前に持っていた初期化設定を実行するknockoutモデルの呼び出し可能な関数にしてください。

+0

ノックアウトを伸ばすことはかなり素晴らしいと簡単です。 –

+0

ドックによると、afterRenderの代わりにカスタムバインディングを使用することをお勧めします。ノート#7の注釈を参照してください - http://knockoutjs.com/documentation/foreach-binding.html#note_5_postprocessing_or_animating_the_generated_dom_elements –

+0

これは現在かもしれませんが、この投稿は1年以上経過していますか? – Magnus

関連する問題