2009-04-24 23 views
1

私はアニメーションプラグインのクリックボタンを実装していますが、問題が見つかりました。ユーザーがボタンをクリックした場合 jQueryのクリックメソッドが何度も呼び出されます

options.prev.click(function() { 
      $(this) 
       .siblings() 
       .filter('img') 
       .slice(0, 1) 
       .effect('drop', {direction: 'left'}, 1000) 
       .unbind('click'); 
     }) 

は、基本的には、ドロップ効果が最初の要素に与えられている:私はあまりにも多くの時間が要素がコントロールから抜け出すボタンをクリックした場合..私はただのコードを紹介します。しかし、ユーザーがクリック回数が多すぎる場合すべての要素がスライスされ、すべての要素が、私が予期していないドロップ効果を持ちます。

このエフェクトをスムーズに実行するには、ユーザーがボタンを何回クリックしても、最初の要素だけがドロップ効果を持つようにします。

答えて

4

これが一度しか起こらないように計画している場合は、最初にチェーンの上にアンバインドを移動して、クリックがすぐに他のイベントに反応するのを止める必要があります。

+1

うまくいきました。十分に実験してくれなかったことをお詫びします。LOL私は解決策が伝播を止めることだと考えました。私はstopPropagation()を入れようとしましたが、うまくいきませんでした。それから正しい答えは、バインドを解除するだけです。 100万を超える! – rymn

1

jQueryには、一致する要素ごとに1回だけイベントを実行できるイベントフックoneがあります。

このケースには完璧です。

関連する問題