如何使用jQuery禁用文本选择?

2022-08-30 01:23:57

jQuery 或 jQuery-UI 是否有任何功能可以禁用给定文档元素的文本选择?


答案 1

在jQuery 1.8中,这可以按如下方式完成:

(function($){
    $.fn.disableSelection = function() {
        return this
                 .attr('unselectable', 'on')
                 .css('user-select', 'none')
                 .on('selectstart', false);
    };
})(jQuery);

答案 2

如果你使用jQuery UI,有一种方法可以做到这一点,但它只能处理鼠标选择(即+仍然有效):CTRLA

$('.your-element').disableSelection(); // deprecated in jQuery UI 1.9

代码非常简单,如果你不想使用jQuery UI:

$(el).attr('unselectable','on')
     .css({'-moz-user-select':'-moz-none',
           '-moz-user-select':'none',
           '-o-user-select':'none',
           '-khtml-user-select':'none', /* you could also put this in a class */
           '-webkit-user-select':'none',/* and add the CSS class here instead */
           '-ms-user-select':'none',
           'user-select':'none'
     }).bind('selectstart', function(){ return false; });