1

jQueryとWebサービスを使用してツリー構造を作成しました。必要に応じてオンザフライで作成するダイナミックHTMLを使用して、ツリーの子ノードを作成します。この木は私にとってはうまくいきます。

次に、私の2番目のタスクは、カスタムスクローラー(facebook / gmailのようなもの)を含めることです。これにはJQueryTinyScrollbarプラグインを使用しましたが、最初のステップでは正常に機能しましたが、動的に追加されたhtmlに対応できません。

私のツリーは次のようなものです。

- Asia
   India
   China
+ Europe
+ South America

上記のHTMLは次のようなものです。

<ul>
   <li><span>-</span><span>Asia</span></li>
   <li><span></span><span>India</span></li>
   <li><span></span><span>China</span></li>
   <li><span>+</span><span>Europe</span></li>
   <li><span>+</span><span>South America</span></li>
</ul>

ヨーロッパと南アメリカの国のHTMLは、ユーザーが「+」アイコンをクリックするとオンザフライで作成されます

この小さなスクロールバープラグインはこのダイナミックHTMLを処理できないため、この動的に作成されたHTMLに問題が発生します。このHTMLを単に無視します。これを修正するためのポインタを提案してください。

ありがとう、ラヴィ・グプタ

4

2 に答える 2

1

コンテンツがロードされた後、スクロールバープラグインの更新関数を呼び出すだけでよいと思います。

//some operation that changes the viewport content...

oScrollbar5.tinyscrollbar_update();

その例は、プラグインのホームページからのものです:http: //baijs.nl/tinyscrollbar/

動的コンテンツが変更された後、この(または同様の)コードを呼び出します。

于 2012-08-21T20:35:29.617 に答える
0

要素は最初は存在しないため、従来のdocument.readyバインディングを介してバインドすることはできません。.on()メソッド(http://api.jquery.com/on/)を使用してコンテナーにバインドし、アタッチされた関数を実行する要素を指定します。例えば:

$('ul').on('click', 'li', function(e){
  $(this).doStuffWithChildLIElement();
});

そうすれば、DOMの準備ができた後に作成された新しいLI要素は、作成したクリック処理関数にバインドされたままになります。

于 2012-08-21T20:33:55.257 に答える