私は$(window).scroll();を使用しています。ユーザーが上または下にスクロールしすぎるときに呼び出す関数を指定します。待機中の関数が実行を再試行する前に実行を終了しました。
この関数は実行に1秒かかるため、スクロールを続けると、最初のものが終了する前に複数回実行されます。
関数を実行させてから、その関数を再度実行する前に待つ必要のある$(window).scroll()関数に伝える方法はありますか?
私は$(window).scroll();を使用しています。ユーザーが上または下にスクロールしすぎるときに呼び出す関数を指定します。待機中の関数が実行を再試行する前に実行を終了しました。
この関数は実行に1秒かかるため、スクロールを続けると、最初のものが終了する前に複数回実行されます。
関数を実行させてから、その関数を再度実行する前に待つ必要のある$(window).scroll()関数に伝える方法はありますか?
あなたは既にスクロール位置をチェックしているブール値を設定できます。
checkingPosition = false;
$window.scroll(function() {
if(checkingPosition) return;
checkingPosition = true;
//do stuff
checkingPosition = false;
});
私はオブジェクトにデータをカプセル化することによって、スコープの問題/混乱を避けるために、このような何かをしたいが...これで場合、jQueryオブジェクト(ウィンドウ要素上):
...しかしそれは私です。
checkingPosition = falseを追加する必要があります。後に// stuffを行う –
関数の実行が終了したらfalseに戻すことを忘れないでください –