2

たくさんdiv.scrollContainerのアイテムを挿入する場所があります。ページが読み込まれると、mCustomScrollbar jQuery プラグインを実行します。これは、アイテムを内部に取り込み、div.scrollContainer独自のクラス/css/js をラップしてカスタム スクロール バーを作成します。

ページが読み込まれると、独自のライブラリを調べて、スクロール バーに挿入するアイテムをいくつか出力します。現在、mCustomScrollbar が作成するカスタム クラスにそれらをターゲット/追加しています。ただし、問題は、mCustomScrollbar がそのクラスを作成する前に、ライブラリがアイテムを出力することがあるということです。その結果、ライブラリのアイテムが存在しないため、正しい要素内に配置することはできません。

ライブラリのアイテムを に追加することを考えましたdiv.scrollContainerが、アイテムが追加される前に mCustomScrollbar がそのクラスを作成した場合の問題に遭遇します。

全体として、DOM で新しい要素が作成されたことを検出する方法があるかどうか疑問に思っています。livequery プラグインの使用が提案されているこの別のスレッドを調べました。追加のプラグインを必要としないソリューションがあるかどうか疑問に思っています。

4

2 に答える 2

1

最後のアイテムを挿入した後で呼び出すことができる.mCustomScrollbar()ので、アイテムが実際に挿入されていることを確実に確認できます。

$(".your-container").append($(".your-items"));
$("div.scrollContainer").mCustomScrollbar();
于 2012-11-29T23:31:25.080 に答える
0

updateOnContentResize: true 設定を使用すると、数ミリ秒ごとに新しいコンテンツがチェックされます。プラグインを起動するときに、他の設定に次の設定も追加します: $(selector).mCustomScrollbar({ advanced:{ updateOnContentResize: true } });

でも!個人的には、数ミリ秒ごとにトラバースする無駄な DOM には反対です。ネイティブの更新メソッドを使用することをお勧めします。スクロールバーのマークアップにコンテンツを追加したことを知る方法を見つけて、必要なときにいつでもこれを実行してください: $(selector).mCustomScrollbar("update");

PSはそのドキュメント、非常に多くの便利な設定/方法を読みます。

お役に立てれば :)

于 2014-03-20T09:03:15.523 に答える