jQuery或jQuery- ui是否有任何功能禁用给定文档元素的文本选择?
当前回答
我已经尝试了所有的方法,这一个对我来说是最简单的,因为我使用IWebBrowser2,没有10个浏览器来竞争:
document.onselectstart = new Function('return false;');
非常适合我!
其他回答
我已经尝试了所有的方法,这一个对我来说是最简单的,因为我使用IWebBrowser2,没有10个浏览器来竞争:
document.onselectstart = new Function('return false;');
非常适合我!
如果你使用jQuery UI,有一个方法,但它只能处理鼠标选择(即CTRL+ a仍然有效):
$('.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; });
以下将禁用所有常见浏览器(IE, Chrome, Mozilla, Opera和Safari)中所有类的“item”的选择:
$(".item")
.attr('unselectable', 'on')
.css({
'user-select': 'none',
'MozUserSelect': 'none'
})
.on('selectstart', false)
.on('mousedown', false);
$(document).ready(function(){
$("body").css("-webkit-user-select","none");
$("body").css("-moz-user-select","none");
$("body").css("-ms-user-select","none");
$("body").css("-o-user-select","none");
$("body").css("user-select","none");
});
我认为这段代码可以在所有浏览器上运行,所需的开销最少。它实际上是上述所有答案的混合体。如果你发现了窃听器,请告诉我!
添加CSS:
.no_select { user-select: none; -o-user-select: none; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; -ms-user-select:none;}
添加jQuery:
(function($){
$.fn.disableSelection = function()
{
$(this).addClass('no_select');
if($.browser.msie)
{
$(this).attr('unselectable', 'on').on('selectstart', false);
}
return this;
};
})(jQuery);
可选:要禁用所有子元素的选择,您可以将IE块更改为:
$(this).each(function() {
$(this).attr('unselectable','on')
.bind('selectstart',function(){ return false; });
});
用法:
$('.someclasshere').disableSelection();