我的脚本中有一些菜单,我想要一个
jquery脚本,当没有鼠标没有移动3秒时,它将导致菜单隐藏.
我知道它真的是一个愚蠢的问题,但我在任何地方都能得到任何答案.
它不是一个合适的脚本,但我只是想要一些事情发生吗?
$("#target").notmousemove(function(event) { $('#menu').hide(); },delay(500));
如果有人反驳我的任务,它会非常有用.
解决方法
在mouseMove处理程序中使用setTimeout.如果鼠标在超时到期之前再次移动,只需使用clearTimeout清除它并再次重新启动超时.
所以类似于:
var timeoutid = 0; $("#someRootElement").mousemove(function() { if (timeoutid) { clearTimeout(timeoutid); timeoutid = 0; } timeoutid = setTimeout(myFunctionToHideMenu,5000); });
编辑:事实上,你甚至不需要检查计时器是否已经运行.尝试停止无效的计时器ID或已停止的计时器将不会导致错误.所以你可以简单地:
var timeoutid = 0; $("#someRootElement").mousemove(function() { clearTimeout(timeoutid); timeoutid = setTimeout(myFunctionToHideMenu,5000); });