我有以下javascript代码执行我的功能,当我按下鼠标左键并将其拖动到屏幕上时:
function MyFunc(e)
{
// I copied this part from another SO question
e.preventDefault();
e.stopPropagation();
e.cancelBubble = true;
e.returnValue = false;
// This should cancel out all default actions, should it not?
return false;
}
document.addEventListener('mousemove', MyFunc false);
这应该做的是,当鼠标在屏幕上拖动时(按下左键时,它会阻止选择文本(或任何其他元素)。但实际情况是,它确实没有。该函数正在执行,我使用console.log检查,但它不会阻止文本选择。 我无法弄清楚我在这里做错了什么。
我现在正在使用的是:
window.getSelection().removeAllRanges();
这有效并且完全取消了选择,但这是非常难看的解决方案,我不明白为什么上面的代码不起作用。
答案 0 :(得分:3)
将此添加到CSS中,以获取您不想拖动的元素。
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;