【问题标题】:How to remove uniform function on a specific select?如何删除特定选择上的统一功能?
【发布时间】:2019-09-11 18:49:32
【问题描述】:

我正在使用统一的 js 来更改复选框、单选按钮、选择框的背景图像。为此,我包括 jquery 文件,统一库 js 文件,另一件事是统一 js 的函数,用于将函数初始化为

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

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

我没有此代码的 jsfiddle 代码。需要的话我会告诉你的。

【问题讨论】:

    标签: jquery html css jquery-uniform


    【解决方案1】:

    只需使用.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();
    });
    

    【讨论】:

    • 绑定功能在这里有效吗?或者我更喜欢你的代码。
    • 如果 op 有几十或几百个需要应用类的元素怎么办?您是否同意支持这一点成为一个问题,因为添加的没有此类属性的新元素将应用uniform?出于这个原因,我认为肯定选择器几乎总是比否定选择器好,而在这里,.not(.noUniform) 的双重否定在我看来在语义上很笨拙。无意冒犯。
    • 他绑定标签名称这一简单事实意味着默认情况下它们应该是统一的,减去一些特殊情况。 @Hassaan 我在这里看不到任何绑定,只是一个应用于节点的函数。如果您需要将其应用于 DOM 就绪后添加的节点,只需将上述逻辑放在一个函数中,您可以在添加新节点后调用。
    • 发挥了作用。感谢您提供此解决方案。
    • 此链接提供更多信息:github.com/pixelmatrix/uniform/issues/150
    【解决方案2】:

    属性data-no-uniform设置为"true"做这个工作

    【讨论】:

      【解决方案3】:

      根据 Prestashop 1.6.x 已经在默认主题中实现了省略统一:

      .\themes\default-bootstrap\js\global.js

      使用类.not_uniform

      $("select.form-control,input[type='radio'],input[type='checkbox']").not(".not_uniform").uniform() ;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-13
        • 2011-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多