当我到达滚动的底部时,我怎么能防止这个被执行两次?
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; }
但没有成功,对此有何建议?
谢谢!
答案 0 :(得分:2)
loading_already = true;
你有==布尔是运算符,而不是赋值。
答案 1 :(得分:1)
你应该使用真棒jQuery throttle/debounce plugin。使这种事情变得非常容易。
以下示例将确保每250毫秒调用las_msg_function
不超过一次(假设滚动检测表达式正确);
if ($(window).scrollTop() == $(document).height() - $(window).height()) {
$.throttle(250, las_msg_function);
}
这里是an example page,它显示了如何与滚动检测结合使用(见第二个例子)