Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery每x毫秒检查一次鼠标移动_Jquery_Timer_Mousemove - Fatal编程技术网

jQuery每x毫秒检查一次鼠标移动

jQuery每x毫秒检查一次鼠标移动,jquery,timer,mousemove,Jquery,Timer,Mousemove,我使用mousemove({})函数。我希望这个mousemove函数只有在至少1秒前最后一次调用时才被调用。我知道我可能会使用某种计时器并设置一个条件 if( cur_time - last_time > 1) do_the_stuff(); 有没有更好的方法 如果没有,我应该使用什么函数来获取cur_time(或获取时间传递) 不,这似乎是最好的办法。把这句话放在mousemove中,你就会得到你需要的东西。这听起来是个不错的方法。您的代码应该如下所示: var last_mov

我使用mousemove({})函数。我希望这个mousemove函数只有在至少1秒前最后一次调用时才被调用。我知道我可能会使用某种计时器并设置一个条件

if( cur_time - last_time > 1)
  do_the_stuff();
  • 有没有更好的方法
  • 如果没有,我应该使用什么函数来获取cur_time(或获取时间传递)

  • 不,这似乎是最好的办法。把这句话放在mousemove中,你就会得到你需要的东西。

    这听起来是个不错的方法。您的代码应该如下所示:

    var last_moved;
    $(document).mousemove(function(e){
        if (!last_moved || (e.timeStamp - last_moved > 1000)) {
            do_the_stuff();
    
            last_moved = e.timeStamp;
        }
    });
    

    请参阅。

    好的,我如何使用计时器?如何获取cur_time?在页面加载时调用setTimeout();捕获全局变量中的最后一次。对我来说,它在JSFIDLE上工作有点奇怪。。。我要一杯look@Cristy我已经修复了一个明显的问题,那就是处理程序在第一次鼠标悬停时没有被激活。看一看新链接。好的,我发现了你的“错误”:D最后一次移动只能在if()中进行升级,因为这是“最后一次移动”发生的时间:D@Cristy很公平,如果这是你想要的。我将您的要求解释为“如果鼠标静止1秒钟”,这显然不是您要求的!我将更新我的答案。另一个问题,在我的示例中,即使鼠标仍然在移动,消息似乎也在更新。。。似乎在鼠标静止时也会调用“mousemove”