Javascript 双击而不选择内容

Javascript 双击而不选择内容,javascript,jquery,selection,double-click,Javascript,Jquery,Selection,Double Click,双击时,如何防止选择的内容 如果在双击后手动单击页面中的任意位置,则将取消选择内容(通过双击选择) 但是,如果我以编程方式触发单击,则内容实际上保持选中状态 $(".tableCell").dblclick(function(){ $("body").click(); }); 这会产生相同的结果: $(".tableCell").dblclick(function(){ return false; }); 小提琴: 借用此SO答案: 您可以使用以下选项: -webkit-to

双击
时,如何防止选择
的内容

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

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

$(".tableCell").dblclick(function(){
    $("body").click();
});
这会产生相同的结果:

$(".tableCell").dblclick(function(){
    return false;
});
小提琴:

借用此SO答案:

您可以使用以下选项:

-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
在CSS规则中,请参见fiddle:

不需要JS:)


希望这有帮助。

借用了另一个答案:


这里拉小提琴:

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

我想,即使我能让上述方法发挥作用,也可能会看到一个选择/取消选择的闪光。完全阻止初始选择是很理想的,但我对所有想法都持开放态度……在处理程序中放置
返回false
是否可以修复它?@Barmar,同样的结果……您能提供一个JSFIDLE吗?@Kyle Muir,当然可以。请看我编辑的问题。很好。那太圆滑了。我接受你的答案,但如果有人提供了一个解决方案,仍然允许单击/拖动选择。。。他们可能会从你那里偷来;)PS,你是如何在JSFIDLE上的url中获得你的名字的?哈哈,这很公平:)至于JSFIDLE,如果你每次登录时都创建一个帐户,它会将这些小提琴归为你的帐户,这包括更新其他人的小提琴。真是太好了。哦,突然,我没意识到有一个重复的问题+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();
}
}