【问题标题】:How can I deselect text using Javascript or jQuery?如何使用 Javascript 或 jQuery 取消选择文本?
【发布时间】:2011-12-30 22:38:55
【问题描述】:

我有一个带有“已取消”文本的可拖动 (jQuery UI) 元素。这就是我的意思:

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

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

【问题讨论】:

    标签: javascript jquery jquery-ui


    【解决方案1】:

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

    document.getSelection().removeAllRanges();
    

    【讨论】:

    • 这会更好,因为我发现如果没有找到选定的文本,检查的答案会引发异常。
    【解决方案2】:

    jQuery UI 现在包含.disableSelection(),您可以使用它来防止元素内的文本被选中。它上面的 API 文档不是很有用,但是:http://api.jqueryui.com/disableSelection/

    顺便说一句,在创建我自己的“文本突出显示”工具时,Eric G 的回答对我非常有帮助 - 正如 Lawrence 所说,如果没有选择任何文本,它不会抛出错误。

    【讨论】:

    • disableSelection 已被弃用(如果您只进行一些测试,您很快就会发现它不起作用)
    【解决方案3】:

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

    类似:

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

    【讨论】:

    • document.selectionFFChrome 中均未定义。请改用document.getSelection()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 2014-02-11
    • 2010-10-22
    • 2015-11-01
    • 1970-01-01
    相关资源
    最近更新 更多