如何使用传统方法e.stopPropagation
(底部的相关问题)阻止文字选择不使用?
是否有一个电话我可以说“不突出显示任何突出显示”?
我将鼠标事件绑定在文档上,因为页面中有大约一百个[或多或少]元素,我希望彼此互动。
我没有将事件绑定到元素的原因是因为当鼠标离开元素时,所有鼠标事件都会停止触发。我需要绑定到文档以正确观看鼠标事件。
使用传统方法方法(下面的链接)的问题是,当触发侦听器时,带有文本的元素已经评估了鼠标事件。
我的代码适用于Chrome。以下问题适用于Firefox。
相关问题: How can I prevent text/element selection with cursor drag
这涉及使用以下方法防止冒泡到文本元素:
if(e.stopPropagation) e.stopPropagation();
if(e.preventDefault) e.preventDefault();
e.cancelBubble=true;
e.returnValue=false;
return false;
答案 0 :(得分:9)
为删除我的上一个答案而道歉但我意识到它仍然无法在FF中工作。
我相信这个答案以及上面的CSS答案将产生您正在寻找的结果。这是一个跨浏览器的解决方案。
var unFocus = function () {
if (document.selection) {
document.selection.empty()
} else {
window.getSelection().removeAllRanges()
}
}
名为onmouseup
,onmousemove
可以解决问题。
答案 1 :(得分:3)
您可以使用css禁用元素选择。
.noselect {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}