2013-03-11 52 views
4

我使用统一的js来更改复选框,单选按钮,选择框的背景图像。为此,我包括jQuery的文件,统一库js文件和另一件事是均匀的js的初始化函数为如何删除特定选择的统一功能?

$(function(){ 
    $("input, select, textarea, button").uniform(); 
}); 

这里的功能我得到了一个问题,我想在的特定部分,以清除此功能内容我不想要统一的功能。那么我采用什么程序来解决我的问题?

我没有这段代码的jsfiddle代码。如果你需要它,我会让你知道。

回答

8

只需使用.not()函数并对您希望省略uniform()逻辑的项目设置一个类。

DOM

<!-- This gets it --> 
<select> 
    <option>Foo</option> 
</select> 

<!-- This doesn't --> 
<select class="noUniform"> 
    <option>Bar</option> 
</select> 

JS

$(function(){ 
    $("input, select, textarea, button").not('.noUniform').uniform(); 
}); 
+0

请问绑定功能,在这里工作?或者我更喜欢你的一段代码。 – Hassaan 2013-03-11 21:42:48

+0

如果op有几十或几百个需要该类的元素,该怎么办?你是否同意支持这一点成为一个问题,因为添加了没有这个类属性的新元素将会被“统一”应用?出于这个原因,我认为一个积极的选择器几乎总是比负数好,在这里,'.not(.noUniform)'的双重否定在语义上是笨拙的。没有违法意图。 – Madbreaks 2013-03-11 21:45:53

+0

简单的事实是,他绑定标签名称意味着它们应该是统一的默认情况下,减去一些特殊情况。 @Hassaan在这里我看不到任何绑定,只是一个应用于节点的函数。如果您需要将它应用于DOM准备好之后添加的节点,只需将上述逻辑放置在添加新节点后可调用的函数中即可。 – AlienWebguy 2013-03-11 21:50:10

2

属性data-no-uniform设定为"true"做的工作