Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript禁用文本选择,但允许拖动_Javascript_Text_Drag And Drop_Preventdefault - Fatal编程技术网

javascript禁用文本选择,但允许拖动

javascript禁用文本选择,但允许拖动,javascript,text,drag-and-drop,preventdefault,Javascript,Text,Drag And Drop,Preventdefault,我现在正在与这个问题斗争一段时间,我的所有搜索都会导致在onmousedown侦听器中使用preventDefault()(以防止文本选择),但当我这样做时,它也会禁用我的拖动(即使元素具有draggable=“true”属性,也无法拖动元素) 允许拖动元素(使用属性draggable=“true”)的最佳方法是什么?当拖动元素并将鼠标悬停在某些文本(p、h1、h2…)上时,防止文本背景形式为蓝色(您知道-单击和标记文本时的默认值) 谢谢。 Jim。最终解决我问题的方法非常简单,而且是CSS 您

我现在正在与这个问题斗争一段时间,我的所有搜索都会导致在onmousedown侦听器中使用preventDefault()(以防止文本选择),但当我这样做时,它也会禁用我的拖动(即使元素具有draggable=“true”属性,也无法拖动元素)

允许拖动元素(使用属性draggable=“true”)的最佳方法是什么?当拖动元素并将鼠标悬停在某些文本(p、h1、h2…)上时,防止文本背景形式为蓝色(您知道-单击和标记文本时的默认值)

谢谢。
Jim。

最终解决我问题的方法非常简单,而且是CSS

您可以看到答案

找到了解决方案

只需将
onmousedown=“mouseDown()”
添加到元素和此方法:

function mouseDown() {
   window.getSelection().removeAllRanges();
}

这将取消选择之前的所有选择,并仅突出显示正在拖动的当前元素。

这可能是您的答案吗?我现在明白我的问题有点棘手。。我以前见过这个问题并尝试过,它确实解决了这个问题,但不是我的问题。这将引导我找到解决方案:)谢谢@trainasist这不是一个解决方案,我不想禁用文本选择,我只想在拖动之前禁用所选文本与可拖动或清除的选择一起拖动。