Jquery检测一次滚动

 jixiaojia 发布于 2023-02-13 09:24

已经读过可以使用此行检测滚动:

$('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.如果我将鼠标移动到屏幕上的任何位置,我会收到"鼠标"警报.如果我向下滚动,我不会收到"滚动"警报.即它没有开火.

任何帮助将不胜感激.

大卫

1 个回答
  • 首先请使用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 
        });
    });
    

    2023-02-13 09:29 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有