我确定我不是第一个寻找这个问题的人,但是我没有找到解决问题的办法。
我正在寻找一种只有在保持3秒钟的点击之后才能触发事件的方法。
我尝试将javascript setInterval()函数与mouseup / mousedown jQuery事件一起使用,但没有用。
有人有主意吗?
我有一个div,按住鼠标键3秒钟,就会触发某些事件。
每次必须重新初始化3秒计时器。
最佳答案
调用setTimeout()
在3000毫秒后执行操作,将setTimeout()
中的标识符存储到函数上方的变量中。在元素的mouseup()
上,通过clearTimeout()
清除超时(如果存在)。
var divMouseDown;
$('#div-id').mousedown(function() {
divMouseDown = setTimeout(function() {
// Do timeout action...
}, 3000);
});
$('#div-id').mouseup(function() {
if (divMouseDown) {
clearTimeout(divMouseDown);
}
});