如何将JQuery函数应用于除某些元素之外的所有元素?
我有点被这个问题困住了。我有一个 web 应用程序,我在其中使用简单的 JQuery 插件:
$.extend($.fn.disableTextSelect = function() {
return this.each(function(){
if($.browser.mozilla){//Firefox
$(this).css('MozUserSelect','none');
}else if($.browser.msie){//IE
$(this).bind('selectstart',function(){return false;});
}else if ($.browser.webkit) { // chrome, webkit
$(this).css('webkitUserSelect','none');
this.onselectstart = function () { return false; };
}else{//Opera, etc.
$(this).mousedown(function(){return false;});
}
});
});
该插件通常会禁用所有浏览器上的鼠标文本选择。我在 #desktop 元素上调用它,它基本上是主要包装器:
$('#desktop').disableTextSelect();
我使用它,因为它禁用 #desktop 内所有元素上的鼠标文本选择。但是,#desktop 中有一些元素,我希望它们具有正常的文本选择行为。是否有一些简单的方法来实现代码,这将打破全局规则?
I am kind of stuck on this one. I have webapp where I use simple JQuery plugin:
$.extend($.fn.disableTextSelect = function() {
return this.each(function(){
if($.browser.mozilla){//Firefox
$(this).css('MozUserSelect','none');
}else if($.browser.msie){//IE
$(this).bind('selectstart',function(){return false;});
}else if ($.browser.webkit) { // chrome, webkit
$(this).css('webkitUserSelect','none');
this.onselectstart = function () { return false; };
}else{//Opera, etc.
$(this).mousedown(function(){return false;});
}
});
});
This plugin generally disables mouse text selects on all the browsers. I call it on #desktop element, which is basically main wrapper:
$('#desktop').disableTextSelect();
I use this, because it disables mouse text selects on all the elements inside #desktop. However, there are some of elements in #desktop, which I want to have normal text select behaviour. Is there some easy way how to implement code, that would make exception to the global rule ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
JQuery 支持
not()
选择器(此处)。您可以使用那些您希望具有正常行为的元素的区别特征,作为not()
选择器的参数JQuery supports the
not()
selector (here). You could use the distinguishing feature of those elements you wish to have normal behaviour, as the argument to thenot()
selector最简单的方法是在开始主要逻辑之前进行一些过滤。
The easiest way to do this would be do do some filtering before you start your main logic.