2011-12-30 22 views
21

我有一个可拖动的(jQuery UI)元素,上面有“已取消”文本。这是我的意思:如何取消选择使用JavaScript或jQuery的文本?

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

当我拖动元素,我经常选择文本意外。我想在元素被拖动时取消选择文本。

回答

-5

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

喜欢的东西:

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

'''document.selection'在'FF'和'Chrome'中都是未定义的。改为使用'document.getSelection()'。 – Max 2013-07-18 08:44:19

+0

请看下面正确的答案,发布者为“Eric G” – gmsi 2018-01-23 21:18:39

67

要取消一切,你可以使用:

document.getSelection().removeAllRanges(); 
+5

这样工作的方式更好,因为我发现如果没有找到选定的文本,检查的答案会抛出异常。 – 2012-11-01 19:53:54

0

的jQuery UI现在包括.disableSelection(),你可以用它来防止文本从你被选中的元素里面。它的API文档并不是非常有用,但是:http://api.jqueryui.com/disableSelection/

另外,Eric G的答案在创建我自己的“文本突出显示”工具时证明是非常有帮助的 - 正如劳伦斯所言,它不会抛出如果没有选择文本,则显示错误。

+2

disableSelection已被弃用(如果你只做了一些测试,你会很快发现它不起作用) – 2013-07-25 13:08:13

相关问题