0

スクロールの一番下に到達したときに、これが 2 回実行されるのを防ぐにはどうすればよいですか?

 if  ($(window).scrollTop() == $(document).height() - $(window).height()){
                   last_msg_funtion();
 }

私が見るオプション:

var loading_already == false を設定してみましたが、次のようなものです:

if(loading_already==false){
     loading_already = true;
     last_msg_function();
     setTimeout('refresh_loading',300);
}

どこ

function refresh_loading(){ loading_already = false; }

しかし、うまくいきませんでした。これに関する提案はありますか?

ありがとう!

4

2 に答える 2

2

loading_already = true;

== はブール値であり、代入ではなく演算子です。

于 2011-03-28T03:25:41.607 に答える
1

すばらしいjQuery スロットル/デバウンス プラグインを使用する必要があります。この種のことを非常に簡単にします。

次の例では、las_msg_functionが 250 ミリ秒ごとに 1 回しか呼び出されないようにします (スクロール検出式が正しいと仮定します)。

if ($(window).scrollTop() == $(document).height() - $(window).height()) {
  $.throttle(250, las_msg_function);
}

これがスクロール検出と組み合わせて使用​​される方法を示すサンプルページです (2 番目の例を見てください)

于 2011-03-28T03:26:12.567 に答える