仅当没有鼠标事件时才更新页面
update a page only when there are no mouse events
我想仅在没有鼠标事件时才更新页面,如:
function TimedRefresh(t) {
$('#colorbox').mousemove(event) {
if (mousemove != 0) { //(mousemove == false)
setTimeout("location.reload(false);", t);
}
}
}
它当然不起作用。它被称为:
<body onload="JavaScript:TimedRefresh(5000);">
你会这样做
$('#colorbox').mousemove(function( event ) {
clearTimeout( $(this).data('timer') );
$(this).data('timer', setTimeout(function() {
window.location.reload();
}, 5000));
});
当鼠标在 #colorbox
元素内移动时,计时器将重置,如果未检测到鼠标移动,它将在 5 秒内重新加载页面。
小提琴
你需要颠倒逻辑。设置页面的计时器加载,然后在移动鼠标时清除/重新启动它。如果鼠标移动时间超过 5 秒,则页面将刷新:
$(document).ready(function() {
var timer;
resetTimer();
$('#colorbox').mousemove(function() {
resetTimer(timer);
});
function resetTimer() {
clearTimeout(timer);
timer = setTimeout(function() {
window.location.reload(false);
}, 5000);
}
});
工作示例
我认为你应该做这样的事情:
- 使用默认值(可能为 0)创建隐藏字段。
- 当某些鼠标事件被触发时,你应该改变隐藏字段的值(可能是 1)
- 然后,另一方面,我认为您可以使用像 setTimeout 这样的函数来比较和引用您的页面。在这里您可以阅读有关此功能的更多信息
相关文章:
- 使用ReactJS使用Redux的简单状态更新事件
- 用javascript更新事件函数中的全局变量
- 更新事件全日历中的开始参数
- 在页面切换时更新事件侦听器
- 通过拖放完整日历来更新事件 - Javascript
- 淘汰赛仅更新事件一次
- Watchify 更新事件永远不会在 Virtualbox 中触发
- ExtJs:确定在存储上触发更新事件的网格
- AngularJs:更新事件$scope
- jQuery UI's未激发可排序更新事件
- 如何更新事件
- 流星更新事件中的模板
- HTML5视频时间更新事件未启动
- html5视频的时间更新事件多久触发一次
- DOM树更改时更新事件处理程序
- 如何更改引导程序时间选择器更新事件的日期
- 更新事件中的反应变量
- jsxGraph点更新事件
- Chrome扩展选项卡on更新事件
- 主干(同步)更新事件