在Safari中添加jQuery addClass()后,CSS规则被忽略

时间:2013-10-09 17:26:35

标签: jquery css safari addclass

我有一个表单,我使用jQuery隐藏/取消隐藏元素的元素,具体取决于另一个元素的选定值。

除了在Safari 6.0中,所有浏览器(IE,Firefox,Chrome)都能正常运行

这是我的功能,隐藏元素,具体取决于它们的值

function hideOptionIfValue(optionElements) {
    /* Loop through the possible values of value (using JS's arguments) */
    for (var i = 1; i < arguments.length; i++) {
        /* Reference arguments[i] as value for further use in .each() */
        var value = arguments[i];

        $(optionElements).each(function(){
            if($(this).val() === value) {
                $(this).addClass('hidden');
            }
        });
    }

我根据具体情况,将此函数称为:

hideOptionIfValue(optionElementsConcerned, 'valueToHide5');

或者那样:

hideOptionIfValue(optionElementsConcerned, 'valueToHide1', 'valueToHide2', 'valueToHide3');

设置后:

var optionElementsConcerned = $('#id1 option, #id2 option, #id3 option');

经过一些基本的调试后,看起来问题来自&#34;非解释&#34;与隐藏类相关的css规则(来自html5样板):

.hidden {
    display: none !important;
    visibility: hidden;
}

实际上,在Safari中使用Inspector时,所选选项会为其分配隐藏类,但它们会显示在下拉菜单中。

0 个答案:

没有答案