2012-02-20 22 views
2
私はあなたが項目にカーソルを合わせると、ボックスはフェードインメニュー、別の項目を処理しようとしている

、別のボックスはフェードイン:jQueryフェードイン/フェードアウト競合状態ですか?

$('.all').fadeOut('fast', function() { $('#item').fadeIn('fast'); 

が、時にはあなたは、複数の、あまりにも速く、マウスを使用物事が表示されるか、すべてがバイバイとユーチングになります..私はレースを優雅にどのように扱うのですか?

+0

セマフォが必要です。 –

+0

@TravisJ、シングルスレッドコードのセマフォ? – Lucero

+0

@lucero-Yupは、主にマルチスレッドに使用されますが、競合状態を処理するためにセマフォが定義されています。多分、スピニングロックがここで機能するでしょう。 –

答えて

6
$('.all').stop(true, true).fadeOut('fast', function() { $('#item').stop(true, true).fadeIn('fast'); 

stop(true)あなたのhtmlを見ていないと難しいかもしれません。

Ref:http://api.jquery.com/stop/

+0

ありがとう、私はより多くのコードを持っていますが、実際に上記のコードは私がやっているすべてです。 – Timmy

1

「キュー」オプションを試してみてください。私はそれがfadeIn関数で利用できるかどうかはわかりませんが、あなたはキューオプションを取るアニメーション関数で不透明度をアニメーション化することができます。

$( '。item')。アニメーション({opacity:0}、{queue:false});

関連する問題