如何使用Javascript或jQuery取消选择文本?

35
我有一个可拖动的元素(jQuery UI),上面有“canceled”文本。这就是我的意思:
$('#main').draggable({
        cancel: '#main>* *',
        start: function(){
          // deselect text
        }
});

当我拖动元素时,经常会不小心选中文本。我想在拖动元素时取消文本的选择。

3个回答

104

要取消选择所有内容,您可以使用:

document.getSelection().removeAllRanges();

6
这个方法效果更好,因为我发现如果没有选中任何文本,勾选的答案会抛出异常。 - Lawrence Johnson

0

jQuery UI 现在包括 .disableSelection(),可以用它来防止你元素内部的文字被选择。关于该 API 的文档并不是非常有用,但是:http://api.jqueryui.com/disableSelection/

另外,Eric G 给出的答案对我创建自己的“文本高亮”工具非常有帮助——正如 Lawrence 所说,如果没有选择任何文本,它不会抛出错误。


3
disableSelection已经废弃了(如果你进行一些测试,你会很快发现它不起作用)。 - Radu Simionescu

-9

清除文档选择 document.selection.empty();

类似于:

 $('#main').draggable({
     cancel: '#main>* *',
     start: function(){
      // deselect text
      document.selection.empty();
     }
 });

5
FFChrome中,document.selection未定义。请使用document.getSelection()代替。 - Max

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接