1

双击<td>时如何防止选择a的内容?<td>

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

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

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

这给出了相同的结果:

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

小提琴:http : //jsfiddle.net/eYpY6/1/

4

3 回答 3

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 :)

希望这可以帮助。

于 2013-09-29T23:39:21.230 回答
1

借用另一个答案:双击后防止文本选择

$(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/

于 2013-09-29T23:52:21.057 回答
0

这里有点晚了,但我想我会分享这个答案。您可以仅使用我在此 JSFiddle为此 SO question编写的代码版本来禁用双击文本选择,该代码要求 CSS(但我找不到答案,所以给出了 Javascript 答案以防 OP 是没关系)。基本上,代码要求更改双击的点击历史记录,然后以编程方式重新选择之前选择的内容。这是使用selectionStart和实现的selectionEnd。我确信有一个更优雅的解决方案,但这就是我现在所拥有的。

于 2015-02-23T01:40:29.900 回答