2

ここに同様の質問があることは知っていますが、特定の値を取得しようとしています。

私はFlexsliderhttp://www.woothemes.com/FlexSlider/に取り組んでおり「flex-active-slide」クラスを失うスライドにいくつかの特別な関数を追加しようとしています。ドキュメントに基づいて、スライドアニメーションの前後に関数を挿入することができました。

// Callback API
start: function(){},
before: function(){ 
  $('li.image').someFunction(); //this is where I need to trigger this event only to the li.image that's losing the flex-active-slide class
},                          
after: function() {
  $('li.flex-active-slide').otherFunction(); //this is where the active class
}, 

上記の例にあるように、他のすべてのli.image要素に対して関数を実行する必要はありません。flex-active-slideクラスを失う要素に対してのみ実行します。

この要素を取得し、変数を使用して定義する必要があります。これにより、関数をでのみ正しく実行できるようになりli.imageます。これは、パフォーマンスの最適化の目的でも意味があります。

助けていただければ幸いです。

4

2 に答える 2

2

より簡単な方法は、プラグインファイル自体を編集することです

開いたjquery.flexslider.js

次のコードを見つける

 active: function() {
          slider.controlNav.removeClass(namespace + "active").eq(slider.animatingTo).addClass(namespace + "active");
        }

slider.controlNavこの機能で作業に使用できます。jQueryを使用して子画像を見つけslider.controlNavた要素を指しますli.find

それが機能しない場合はactive-slide、このファイルで見つけることができ、このクラスが削除された場所を確認できます。それらの場所にコードを追加できます

更新:$('li.image')。eq(slider.currentSlide)は、アクティブなクラスを失ったスライドを呼び出す方法です。

于 2012-08-08T04:41:57.053 に答える
0

私はあなたがこのような何かを試すことができると思います...

var somevar;

start: function(){},
before: function() {
    somevar = $('li.image.flex-active-slide');
},
after: function() {
    $.each(somevar, function( index, elem ) {
        if( !$(elem).hasClass('flex-active-slide')) ) {
            // Obviously it has lost the flex-active-slide class.
        }
    });
}

プラグイン自体を変更せずに、プラグインが実際に何かを実行する前に、要素が前述のクラスを失っているかどうかを簡単に判断できるとは思えません。したがって、.someFunction()そこにあるメソッドでさえ、コールバックで実行する必要がありafterます。

于 2012-08-08T04:28:41.950 に答える