如何在维持点击n秒后触发事件? - jQuery/Javascript

Pie*_*ard 5 javascript jquery

我相信我不是第一个找这个,但我没有找到任何解决方案来解决我的问题.

我正在寻找一种方法,只有在经过3秒的维持点击后才能发起事件.我尝试使用带有mouseup/mousedown Jquery事件的javascript setInterval()函数,但它没有用.

有人有想法吗?

我有一个div,我按住鼠标按钮3秒钟,然后会触发一些东西.每次必须重新初始化3秒计时器.

Mic*_*ski 11

调用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);
  }
});
Run Code Online (Sandbox Code Playgroud)