0

mouseleave でプラグイン 'bxSlider' を無効にすることは可能ですか?

$('.post').mouseenter(function() {   
         $('.content .bxSlider').each(function(){
             $(this).bxSlider({auto: 'true'});
         });
     }).mouseleave(function() {
         // ??
});

ご意見をお聞かせください...

4

1 に答える 1

2

なぜやめさせたいのですか?ホバリングしている間だけ自動前進させたいですか?オプションを見ると、これができると思います:

$('.content .bxSlider').each(function(){
         $(this).bxSlider();
});

$('.post').mouseenter(function() {   
         $('.content .bxSlider').each(function(){
             $(this).startAuto();
         });
     }).mouseleave(function() {   
         $('.content .bxSlider').each(function(){
             $(this).stopAuto();
         });
});

当然、このコードは少し最適化できます。おそらくいくつかの変数を使用してdom検索の数を減らすことができますが、これがあなたが求めているものだと思います:)

編集

正しいので、上記は機能しません。スライダー オブジェクトが変数でない限り、パブリック関数は認識されません。理由はわかりませんが、これを回避する方法は次のとおりです。

var sliders = []; // store for the sliders

$('.content .bxSlider').each(function() {
    sliders.push($(this).bxSlider({auto: false})); // create a slider and store it
});

$('.post').mouseenter(function() {   
         $.each(sliders, function(i){
             sliders[i].startAuto(); // start each slider
         });
     }).mouseleave(function() {   
         $.each(sliders, function(i){
             sliders[i].stopAuto(); // stop each slider
         });
});​

そして、ここで動作しています : http://jsfiddle.net/KBfx9/

EDIT 2 ネストされたスライドショーをトリガーするためのソリューション:

以前の解決策は、複数のスライドショーを同時にトリガーすることでした。ここで修正しました: http://jsfiddle.net/KBfx9/1/ネストされたスライドショーをトリガーします。注:.content投稿の代わりにクラスを識別子として使用したのは、私の例では後者が不要であるためです。さらに、コンテナーを使用しindex()て関連するスライダーを特定しました。これは、OP がリンクしているページ (以下のコメント) で機能するためです。

これがあなたのためにそれをソートすることを願っています:)

于 2012-12-23T16:07:29.553 に答える