我处理的dblclick事件在跨度在我的web应用程序。双击的副作用是,它选择了页面上的文本。我怎样才能阻止这种选择的发生呢?


当前回答

为了防止ie8按CTRL和SHIFT点击文本选择个别元素

var obj = document.createElement("DIV");
obj.onselectstart = function(){
  return false;
}

防止在文件上选择文本

window.onload = function(){
  document.onselectstart = function(){
    return false;
  }
}

其他回答

在纯javascript中:

element.addEventListener('mousedown', function(e){ e.preventDefault(); }, false);

或者使用jQuery:

jQuery(element).mousedown(function(e){ e.preventDefault(); });

旧线程,但我提出了一个解决方案,我相信是更干净的,因为它不禁用每个偶数绑定到对象,只防止随机和不需要的文本选择在页面上。这很简单,而且对我来说效果很好。 这里有一个例子;我想防止当我用类“arrow-right”在对象上单击几次时的文本选择:

$(".arrow-right").hover(function(){$('body').css({userSelect: "none"});}, function(){$('body').css({userSelect: "auto"});});

HTH !

或者,在mozilla上:

document.body.onselectstart = function() { return false; } // Or any html object

即,

document.body.onmousedown = function() { return false; } // valid for any html object as well

为了防止ie8按CTRL和SHIFT点击文本选择个别元素

var obj = document.createElement("DIV");
obj.onselectstart = function(){
  return false;
}

防止在文件上选择文本

window.onload = function(){
  document.onselectstart = function(){
    return false;
  }
}

防止双击后才选择文本:

您可以使用MouseEvent#detail属性。 对于mousedown或mouseup事件,它是1加上当前的单击次数。

文档。addEventListener('mousedown',函数(事件){ If (event.detail > 1) { event.preventDefault (); //当然,你还是不知道你在这里阻止了什么… //你也可以检查event.ctrlKey/event.shiftKey/event.altKey //不阻止一些有用的东西。 } },假); 一些虚拟文本

参见https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/detail