私はこのようなコードを使用してスライド要素をアニメートしています。これはflexliderの質問ではなく、jqueryの質問のほうが多いことに注意してください。jQuery定義時に選択したオブジェクトを取得
さて、flexsliderに私はスライダーのコントロールのコンテナを指定するには、このように、引数として渡すためにjQueryオブジェクトを定義することができます。
$('.header-slider').flexslider({
animation: "slide",
directionNav: false,
slideshowSpeed: 5000,
controlsContainer: $('.header-slider .controls-container')
});
すべて良いが、後で私が定義するときに第2スライダ、のは、それはステップバイステップでみましょう、私はコピー&ペーストを私の第2のスライダのために上記のコードを魔法のように、この
$('.quote-slider').flexslider({
animation: "slide",
directionNav: false,
slideshowSpeed: 5000,
controlsContainer: $('.quote-slider .controls-container')
});
作品のように、予想通り。しかし、今、私たちは醜いコードを持っているので、のは、それをきれいにしましょう、オプションは両方のスライダーのために同じなので、私は1つのクラスに、これは、より一般的なようにしたいと、ここで次のステップです:
$('.slider').flexslider({
animation: "slide",
directionNav: false,
slideshowSpeed: 5000,
controlsContainer: $(this).find('.controls-container')
});
は、いや、ここです当然のことながら、$(this)
はこの文書を参照しています!では、上記のコード(最後のブロック)で、jQueryに、現在選択されている'.slider'
を参照したいのですが、ドキュメントではないことを教えてください。明らかに、$( 'controls-container')を引数として渡すだけで、両方のスライダーで2つのオプションが得られるので、私はそれを望んでいません。
ああ右、興味深いソリューションを、ありがとうございました!しかし、これは唯一の解決策ですか? jQueryには、積み重ねられたルール内の現在の要素を参照する方法はありませんか? –
これはjQueryの問題ではなく、機能レベルでスコープされているJSの問題です。 –
うーん、そうだ。申し訳ありませんが、迅速かつ明確な助けをいただきありがとうございます! –