双击而不选择内容

时间:2013-09-29 23:10:01

标签: javascript jquery selection double-click

双击<td>时,如何阻止选择<td>的内容?

如果我在双击后手动单击页面中的任意位置,则内容(通过双击选择)将被取消选中。

但是,如果我以编程方式单击该单击,则内容实际上保持选中状态......

$(".tableCell").dblclick(function(){
    $("body").click();
});

这给出了相同的结果:

$(".tableCell").dblclick(function(){
    return false;
});

FIDDLE: http://jsfiddle.net/eYpY6/1/

3 个答案:

答案 0 :(得分:1)

借此SO回答:How to disable text selection highlighting using CSS?

您可以使用:

-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;

在CSS规则中,请参阅小提琴:http://jsfiddle.net/KyleMuir/eYpY6/2/

不需要JS:)

希望这有帮助。

答案 1 :(得分:1)

借用另一个答案:Prevent text selection after double click

$(document).ready(function(){
$(".tableCell").dblclick(function(){
clearSelection();
});
});

function clearSelection() {
if(document.selection && document.selection.empty) {
    document.selection.empty();
} else if(window.getSelection) {
    var sel = window.getSelection();
    sel.removeAllRanges();
}
}

在这里小提琴:http://jsfiddle.net/eYpY6/3/

答案 2 :(得分:0)

有点晚了,但我想我会分享这个答案。您可以仅使用我在this JSFiddle中为this SO question编写的代码版本双击来禁用文本选择,{{3}}要求CSS(但我无法找到答案,所以给了一个Javascript答案,如果OP是可以的那个)。基本上,代码要求双击更改点击历史记录,然后以编程方式重新选择之前选择的内容。这是使用selectionStartselectionEnd实现的。我确信这是一个更优雅的解决方案,但这就是我现在所拥有的。