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


当前回答

如果你正在使用Vue JS,只需追加@mousedown。防止=""到你的元素,它将神奇地消失!

其他回答

或者,在mozilla上:

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

即,

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

在纯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 !

如果你正在使用Vue JS,只需追加@mousedown。防止=""到你的元素,它将神奇地消失!

FWIW,我将user-select: none设置为那些我不希望在双击父元素的任何地方时以某种方式被选中的子元素的父元素。它确实有效!很酷的是contentteditable ="true",文本选择等仍然适用于子元素!

就像:

<div style="user-select: none">
  <p>haha</p>
  <p>haha</p>
  <p>haha</p>
  <p>haha</p>
</div>