1

参照されているデモ ページは、ここにあります。

親カテゴリ (例: Stone Tiles、Stone Sinks) をクリックすると、JScrollPane が現在の高さを再決定し、必要に応じて調整する方法を決定しようとしています。残念ながら、そうしようとする私の試みはまだうまくいきません。

ここで、次の機能を提供する例を参照しました(更新を行うため)...

api.reinitialise();

私はこの関数をカテゴリの親によってトリガーされるように設定しようとしました...

var pane = $('.menuwrap')
pane.jScrollPane();
var api = pane.data('jsp');
var i = 1;

$("li.expandable.parent").click(function() {
api.reinitialise();
});

残念ながら、クリックがレンダリングされていることは確認できましたが、機能 (api.reinitialize) は機能していないようです。新鮮な目が私を正しい方向に向けてくれることを願っています. :-)

ありがとう!

4

2 に答える 2

1

問題は、クリックの直後に api.reinitialise が実行され、li 要素がまだ展開されていないため、jscroll ペインが高さを再計算するときに間違っていることです。遅延を追加してみることができますが、最善の解決策は、リストの展開が終了したときにトリガーされるイベントに api.reinitialise() をバインドすることです。li 内で div をどのように展開しているかはわかりませんが、たとえば .animate を使用している場合は、api.reinitialise をアニメーション完了イベントにバインドできます。

また、すべての親 li にクラスの親が関連付けられているわけではないことにも注意してください。すべての主要な li 要素の展開と折りたたみ時にペインを再初期化することをお勧めします。

それが役立つことを願っています!

乾杯 :)

于 2012-09-20T16:16:50.523 に答える
0

できることは、デフォルトで内部divを展開し、CSSで直接ではなく、jqueryで閉じることです。

したがって、これを行う代わりに:

.mydiv.closed {display:none}

要素がページに描画された後、jqueryでこれを行います。

$('.mydiv.closed').hide();

これにより、jscrollpaneが必要な高さでロードされ、最初に非表示にしたいものが折りたたまれます。

于 2013-01-17T09:49:21.653 に答える