0

ハンドラーをイベントにバインドしようとしています。イベントはキーダウン関数です。ハンドラーはヒット変数をリッスンして、2 つの条件のいずれかを生成します。1 番目の条件 (ヒット数が奇数) は 1 つの機能を実行し、2 番目 (偶数ヒット) は別の機能を実行します。詳しく説明すると、最初の関数は 1 つの要素にスクロールし、2 番目の関数は別の要素にスクロールします。

フィドル

上記はデモへのリンクです。見られる厄介なバグがあります。

私が考えることができる唯一のことは、2番目のイベントのために次のように修正する必要があるということです:

.offset().top
4

2 に答える 2

2

keydown 関数の外側で宣言しhitsて、毎回 0 にリセットされないようにします。

于 2012-10-20T22:21:54.470 に答える
1

いいえ、条件が間違った場所にあるのではなく、変数の宣言と初期化です。もしあなたがそうするなら

hits = 0;
if (hits % 2 !== 0) …

条件は明らかに常に false になります。

宣言をイベント ハンドラー関数のスコープ外に移動し、クエリを実行する直前に毎回リセットしないでください。

于 2012-10-20T22:22:01.707 に答える