我需要在双击时阻止文本选择。但是鼠标拖动时仍然可以选择文本。有可能吗?
如果我尝试删除dblclick
或mouseup
上的选择,它会闪烁(如this jsfiddle中所示),这也是不可取的。
UPD:我不需要完全禁用选择;我只想在双击时禁用它。
答案 0 :(得分:1)
<强> HTML: - 强>
<h2>Try to select me</h2>
<div id="foo" unselectable="on">dljafdlhjafdbdfasjhadsfh adfsjlfhads h jkfkaj fjf ajksfhajks afjk sdhfkj asfadks jfsdjf kjasdhf kjasdh fkjasdfk jadskjfhakdsjf kajsdf kjah kfjas kdjfads</div>
<强> CSS: - 强>
#foo {
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
/*
Introduced in IE 10.
See http://ie.microsoft.com/testdrive/HTML5/msUserSelect/
*/
-ms-user-select: none;
user-select: none;
}
答案 1 :(得分:1)
我想说没有css解决方案,因为没有办法阻止仅双击选择,但让文本可以通过拖动进行选择。但是,您可以使用css user-select:none;
完全阻止选择但是你可以在javascript中检查doubleclick事件,然后删除选择 window.getSelection()空();
答案 2 :(得分:0)
在代码中需要时使用此伪选择器:
::selection {
background: transparent;
color: initial;
}
答案 3 :(得分:0)
此JavaScript解决方案应适用于所有浏览器:
<div onselectstart="return false">your text</div>
或者您可以使用适用于大多数浏览器的css解决方案:
.not-selectable {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
注意:如果我没记错的话,css解决方案在大多数移动浏览器中都不起作用。