3

我有一个元素(textArea)。现在我想要一个长按事件和一个元素上的双击事件。我能够做到这一点,但我也想在长按事件的 mousedown 事件中使用 event.preventDefault() 。这反过来也防止了 dblClick 事件。

我想阻止默认的原因是我在 longPress 上渲染一个元素,并希望在我在 longpress 之后触发 mousemove 时阻止初始 mouseDown。我已经搜索并重新搜索了网络,但无法找到一个好的答案来解决长按和 dblclick 相同元素的问题。

谢谢!!

4

1 回答 1

4

试试这个演示

HTML

<input type="button" ondblclick="whateverFunc()" onmousedown="func(event)" onmouseup="revert()" value="hold for long"/>

JavaScript

var timer;
var istrue = false;
var delay = 3000; // how much long u have to hold click in MS
function func(e)
{
   istrue = true;
   timer = setTimeout(function(){ makeChange();},delay);
  // Incase if you want to prevent Default functionality on mouse down
  if (e.preventDefault) 
  { 
     e.preventDefault();
  } else {
     e.returnValue = false; 
  }
}

function makeChange()
{
      if(timer)
      clearTimeout(timer);

      if(istrue)
      {
            /// rest of your code
          alert('holding');

      }
}
function revert()
{
   istrue =false;
}
function whateverFunc()
{
    alert('dblclick');
}
于 2013-10-23T10:46:24.440 回答