javascript - 普通 JavaScript 中的单击并按住事件

标签 javascript

我希望能够将一个函数附加到一个元素上,该函数只有在该元素上单击指定时间后才会运行。

有几个( 123 )与在 javascript 中处理鼠标保持相关的问题;但这些问题要么使用 jQuery,要么与更特定的用例相关。

我想实现一些更通用的东西,我觉得对于这个问题应该有一个关于堆栈溢出的很好的答案。

最佳答案

这是我使用 window.setTimeout 得到的结果:

  var mouseTimer;
  var myVar;
  function mouseDown() { 
      mouseTimer = window.setTimeout(myFunction,500); //set timeout to fire in 2 seconds when the user presses mouse button down
  }

  function myFunction(){ myVar = true;}
  var div = document.getElementById("testBtn");
  testBtn.addEventListener("mousedown", mouseDown);
  document.body.addEventListener("mouseup", removeTimer);  
  
  function removeTimer(){
     if(myVar) console.log("a");  
     if (mouseTimer) window.clearTimeout(mouseTimer);
     myVar = false;
     
   }
<button id="testBtn">Test</button>

关于javascript - 普通 JavaScript 中的单击并按住事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56149463/

相关文章:

javascript - 为什么我们创建一个变量来引用类,而不是仅仅使用 document.querySelector (".class")?

javascript - 使用 JQuery 改变颜色

javascript - JSP点击按钮弹出窗口的方法

javascript - 设置 observable 值后清除 jQuery 事件

javascript - Windows 10 平板电脑浏览器 : soft keyboard very buggy

javascript - 比较两个数组并分组为插入和更新

javascript - 在创建 React 组件时,我应该使用功能组件,React.createClass 还是 extends React.Component?

javascript - 字体增加动画不起作用 JavaScript

javascript - 有没有一种设计模式可以轻松管理 "cascading choices"?

javascript - 使用动画和每个迭代动画