0

当我到达滚动底部时,如何防止它被执行两次?

 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

加载_已经=真;

你有 == 这是布尔运算符,而不是赋值。

于 2011-03-28T03:25:41.607 回答
1

你应该使用很棒的jQuery throttle/debounce 插件。使这种事情变得非常容易。

以下示例将确保las_msg_function每 250 毫秒调用一次不超过一次(假设您的滚动检测表达式是正确的);

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

这是一个示例页面,显示了如何将其与滚动检测结合使用(查看第二个示例)

于 2011-03-28T03:26:12.567 回答