如何通过jQuery禁用文本选择?

时间:2011-10-06 14:05:19

标签: javascript jquery html

我知道这个问题已被提出(here),但我发现的所有答案都是用css来处理的 选择器:选择(浏览器尚未广泛支持)。

那么,如何通过jQuery在我的html页面上禁用文本选择,而不是依赖于css技巧呢?

4 个答案:

答案 0 :(得分:14)

这是一个简单的单行,用于禁用整个页面上的文本选择。 (无论你是否应该是另一个问题)

$(document).bind('selectstart dragstart', function(e) {
  e.preventDefault();
  return false;
});

答案 1 :(得分:12)

如果您想避免使用插件,可以从jQuery UI源中提取相关部分:

/*!
 * jQuery UI 1.8.16
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI
 */
$.support.selectstart = "onselectstart" in document.createElement("div");
$.fn.disableSelection = function() {
    return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +
        ".ui-disableSelection", function( event ) {
        event.preventDefault();
    });
};

$("#somediv").disableSelection();

答案 2 :(得分:4)

包含jQuery UI并使用$(element).disableSelection()

然而,禁用文本选择是非常用户不友好,除非在可能意外选择的上下文中使用(例如,拖放和按钮或用户可能双击以更快地执行多个更改的按钮(例如,在纺纱厂))

答案 3 :(得分:-2)