jQueryのカスタムイベントを使用して、このようなリスナーを設定するのが好きです。 http://www.spookandpuff.com/examples/SliderPublishEvents.html
は基本的に、あなたは(など、画像をロードし、位置を決定することが必要なロジックを全て実行する(私の例では「更新」と呼ばれる)各スライドにカスタムイベントハンドラをバインドします。ここでは
は一例です)。スライドごとに、イベントをトリガーすることができます(
$(slide).trigger('update')
)。
すべてのスライドを更新するには、イベントをスライダ自体(またはすべてのスライドのコンテナ)にバインドします。私の例では、これは「リフレッシュ」と呼ばれています。このすべては、すべてのスライドに「更新」イベントをトリガしているん:
slider.bind('refresh', function(event, position){
slides.trigger('update', [position]);
});
[位置]パラメータは、jQueryのの「スライド」イベントから入手することができ、スライダーの位置を取るように設計されています。 (これは、jQueryがこのデータを処理する方法のため、単一項目の配列として設定されています。これはちょっとしたことです)。
スライダを設定する際に、そのようにコールバックを割り当てる:
$('#slider').slider({
slide:function(event, ui){
slider.trigger('update', [ui.value]);
}
});
そして、それはスライド自体のリフレッシュイベントハンドラに各スライドのためのロジックを置くだけの問題です。あなたもそれに助けが必要ですか?
イベントをスライドにバインドするには、事例をきれいにし、 '.bind()'ではなく '.live()'を使用するために、私は例の名前空間に名前を付けました。これにより、イベントハンドラを再初期化せずにスライドを追加または削除できます。 – Beejamin