0

jcarousel の「循環」ラップ バグについてよく読みましたが、この特定のバグは見つかりませんでした。「循環」ラップを使用したjcarouselがあり、ユーザーがスライドにカーソルを合わせたときに現在のスライドに関する情報を表示し、マウスがスライドの外にあるときにこの情報を非表示にしたいと考えています。それを達成するために、私はこの情報を で<li>ラップされた要素の下に保持し<div class="description">ます。

$('#carousel').jcarousel(
     auto: 3,
     wrap: 'circular',
     scroll:1,
     initCallback: mycarousel_initCallback,
     size:5
 });

イベントをバインドします(バリアントも試しましたlive()<li>要素(jcarouselが「循環」ラップで動作している間に表示される現在および将来):

$('#carousel').delegate(
                        'li',
                        'mouseover',
                        function (){
                            $(this).find('.description').slideDown();
                            return false;
                        }
                    );
                $('#carousel').delegate(
                        'li',
                        'mouseout',
                        function () {
                            $(this).find('.description').slideUp();
                            return false;
                        }
                    );

これは正常に動作しますが、ある時点で (私には完全に未定です。使用の最初の数秒、または前後にハードタップする数分でさえある可能性があります)、スライドの説明が表示されなくなることがあります。これをデバッグしようとしたところ、この壊れたスライドでイベントが発生し、説明付きの dom 要素が存在することがわかりましたが、slideDown()/slideUp() は単に何もしません。そして、このスライドは、ページをリロードするまで壊れたままです。

何らかの理由で、ラップを他のものに変更できず、jQuery を 1.3 (または 1.4、実際には覚えていません) から最新バージョンに変更できません。何か案は ?

4

1 に答える 1

0

簡単に言えば、この問題は jQuery アニメーション機能と jCarousel の間の相互作用に関連しています。スライドショーに円形のラップがあると、ある時点で、スライドを表す新しいノードの作成と削除が開始されます。また、アニメーションが終了していないときにノードを削除すると、jquery の fx キューが「ハング」します。この問題を回避するには、スライドを削除する前にこのキューをクリアする必要がありました。ハックのように見えますが、私には思われるので、これ以上のことはできません。

于 2012-09-27T09:02:39.117 に答える