已经读过可以使用此行检测滚动:
$('window').one('scroll', function() { } );
如果有这个内联代码:
var TimeVariable=setInterval(function(){ DoJQueryStuff() },300); function DoJQueryStuff() { if(typeof jQuery == "undefined") return; window.clearInterval(TimeVariable); $('body').one('mousemove', function() { alert('mouse'); } ); $('window').one('scroll', function() { alert('scroll'); } ); }
在加载JQuery之前,每隔300毫秒调用一次DoJQueryStuff.如果我将鼠标移动到屏幕上的任何位置,我会收到"鼠标"警报.如果我向下滚动,我不会收到"滚动"警报.即它没有开火.
任何帮助将不胜感激.
大卫
首先请使用jquery ready
http://api.jquery.com/ready/方法.我不想说你的实现是错误的,但比jquery ready方法慢.
你的滚动函数基本上没有执行,因为你将它绑定到错误的对象.当你window
用jquery 引用对象时,不要将它包装在叛逆者中.
如果你这样做,jquery将实习生调用document.getElementsByTagName
并找不到标记名,window
因为window
它不是window.document
节点的子节点.因此,您的滚动检测功能永远不会被触发,因为jquery无法将a绑定eventListener
到您的提交元素标记名.
简单地将它绑定到window
没有叛逆者.这会强制jquery将scroll事件直接绑定到在滚动时window
正确触发函数的DOM对象.
例:
$(window).ready(function(){ $(this).one('mousemove', function() { // mouse move }).one('scroll', function(){ // scroll }); });