2011-11-15 4 views
2

IE 9でスクロール警告が発生しましたが、スクロール可能な(つまり、いくつかのjscrollpanesがある)オーバーレイを含むページでjscrollpaneを使用しています。 Firefox 8では、すべて正常に動作し、ページはすぐに構築されます。 IE上では、時間がかかり(約1分)、スクロール領域の1つを折りたたみ/展開する(つまり、表示/非表示にする)と、ページが長時間にわたって再びフリーズします。明らかに、これはIEとの関連でのみ問題になります。jScrollPaneによってスクリプトの警告が遅くなる

.jscrollpane()が追加されていない同じページは、Firefoxと同じ速さのIEにあります。

私はjscrollpane 2.0.0.beta10とjquery 1.7を使用していますが、jquery 2.0.0.beta9とjquery 1.6では同じです。

+2

私はIEがすべてのウェブサイトでその警告を出さないことに驚いています!私は知っている、悪い冗談。 'jscrollpane()'はドキュメントの 'ready'イベントハンドラで呼び出されていますか? ([jquery ready()](http://api.jquery.com/ready/) –

+2

いくつかのデバッグで私は答えを見つけました: jquery.jscrollpane.jsで、関数initialiseVerticalScroll()は非常に不適切な選択を使います。 container.find( '> .jspVerticalBar> .jspCap:visible、> .jspVerticalBar> .jspArrow')。each( 特にコンテナ*に多くの要素が含まれている場合は、 IEのトラブルを引き起こすようです。 * .jspVerticalBar *は既に* verticalBar *: verticalBar.find( '> .jspCap:visible、> .jspArrow')として知られているため、修正は非常に簡単です。 ( 同じ問題/解決方法が対応する水平バー。 – user1047487

+1

あなたはそれを回答として投稿し、それを受け入れるべきです。 –

答えて

2

コメントからuser1047487の回答を投稿すると、検索が簡単になります(フォーマットを追加することもできます)。 jquery.jscrollpane.jsで

、機能initialiseVerticalScroll()は垂直スクロールバーのサイズを変更する(少なくともIEのために)非常にinperformant選択を使用:

container.find('>.jspVerticalBar>.jspCap:visible,>.jspVerticalBar>.jspArrow').ea‌​ch 

容器は、要素の多くが含まれている場合、これは特に遅いです。

修正が原因.jspVerticalBarは既にverticalBarとして知られているという事実のために、非常に簡単です:

verticalBar.find('>.jspCap:visible,>.jspArrow').each 

同じ問題/ソリューション対応する水平のバーに適用されるべきです。

関連する問題