1

ノックアウトが for ループのレンダリングを終了したら、ブートストラップ ツールチップを img に適用する方法を見つけるのが難しいと感じています。

以下は正しい画像を示しており、「標準」の html ツールチップが表示されますが、ブートストラップ ツールチップは .tooltip() 呼び出しによってアクティブ化されません。

どこが間違っているのですか?

ビューモデル

self.handleAfterRender= function(elements, data) {
    $(elements).find('img').tooltip();
}

HTML

<div data-bind="with: $root.SelectedSubmission">
  <div data-bind="foreach: {data: To, afterRender: handleAfterRender}">
    <div class="pull-left">
      <img class="mediumprofileimage" rel="tooltip" 
           data-bind="attr: {src: ProfilePicture, alt: Fullname, title: Fullname}" />
      <br/>
      <span data-bind="text: Fullname"></span>
    </div>
  </div>
  <div class="clearfix"></div>
</div>

私は問題についてもう少し知りました。要素が へのバインディングを失っているようtooltip()です。バインディングを維持するためにjquery.on()orを使用する必要があるかどうかはわかりません。.live()

4

2 に答える 2

1

ここで答えを見つけるか、Knockout-bootstrapを試すことができます。これは良いオプションです

于 2014-02-09T22:02:44.700 に答える
0

あなたの場合、afterRenderは挿入された DOM 要素の配列を取得したため、foreach を使用する必要があります。

$(elements).each(function(index,element){ $(element).find('img').tooltip()});

しかし、追加したアイテムごとにツールチップを追加する必要があるため、 afterRenderの代わりにafterAddイベントを使用する方が良いと思います。そうすれば、今作業しようとしているように、各アイテムを個別に操作できるようになります。

$(element).find('img').tooltip();

生成された DOM 要素の後処理またはアニメーション化に関する KnockoutJs ドキュメントへのリンク

于 2012-09-11T13:55:14.083 に答える