2011-12-30 61 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

相關問題