今天下午用jquery做了一个类似与QQ空间个人中心滚动条滚动到最底部的时候刷新新的信息。
遇到了一个问题,用了好多种方法都没法,
想要的效果是,
当指定标签在可见,也就是在当前屏幕中出现了的时候就调用ajax,然后读取数据,
但问题出现了,当滑轮滚动快了的时候,这个条件就达到要求了几次,然后调用方法也调用了几次,就相当于一次性调用了几下方法?
我想要的效果是,当上一个ajax完全读取了信息的时候在调用下一个,
或者在规定时间内只能调用一次方法.
我尝试过的方法有:
用winodw.setTimeout();
ajax同步
但是都失败了.
求各位大大帮助
贴上代码:
- JScript code
jQuery(window).scroll(function(){ //标签到浏览器顶部的高度 var label_top=jQuery("#refresh").offset().top; //浏览器滚动的高度 var scroll_top=jQuery(window).scrollTop(); //当前浏览器窗口的可视化高度 var window_top=jQuery(window).height(); //文档高度 var body_top=jQuery(document.body).height(); //判断标签是否在当前可见窗口中 if(label_top-scroll_top<=window_top){ alert("执行方法"); } });
------解决方案--------------------
加一个全局变量呗.....
- JScript code
var scroll = false; jQuery(window).scroll(function(){ //标签到浏览器顶部的高度 var label_top=jQuery("#refresh").offset().top; //浏览器滚动的高度 var scroll_top=jQuery(window).scrollTop(); //当前浏览器窗口的可视化高度 var window_top=jQuery(window).height(); //文档高度 var body_top=jQuery(document.body).height(); //判断标签是否在当前可见窗口中 if(label_top-scroll_top<=window_top && !scroll){ scroll = true; alert("执行方法"); } });