jQuery .hide()设置可见性的等价物:hidden

在jQuery中,有一些设置CSS display: none设置的.show() .hide().show()方法。

是否有一个可以设置visibility: hidden的等价函数visibility: hidden设置?

我知道我可以使用.css()但我更喜欢一些函数,如.hide()左右。 谢谢。


你可以制作自己的插件。

jQuery.fn.visible = function() {
    return this.css('visibility', 'visible');
};

jQuery.fn.invisible = function() {
    return this.css('visibility', 'hidden');
};

jQuery.fn.visibilityToggle = function() {
    return this.css('visibility', function(i, visibility) {
        return (visibility == 'visible') ? 'hidden' : 'visible';
    });
};

如果你想重载原来的jQuery toggle() ,我不建议...

!(function($) {
    var toggle = $.fn.toggle;
    $.fn.toggle = function() {
        var args = $.makeArray(arguments),
            lastArg = args.pop();

        if (lastArg == 'visibility') {
            return this.visibilityToggle();
        }

        return toggle.apply(this, arguments);
    };
})(jQuery);

的jsfiddle。


没有内置的,但你可以很容易地编写自己的:

(function($) {
    $.fn.invisible = function() {
        return this.each(function() {
            $(this).css("visibility", "hidden");
        });
    };
    $.fn.visible = function() {
        return this.each(function() {
            $(this).css("visibility", "visible");
        });
    };
}(jQuery));

然后你可以这样调用它:

$("#someElem").invisible();
$("#someOther").visible();

这是一个工作示例。


更简单的方法是使用jQuery的toggleClass()方法

CSS

.newClass{visibility: hidden}

HTML

<a href="#" class=trigger>Trigger Element </a>
<div class="hidden_element">Some Content</div>

JS

$(document).ready(function(){
    $(".trigger").click(function(){
        $(".hidden_element").toggleClass("newClass");
    });
});
链接地址: http://www.djcxy.com/p/2375.html

上一篇: Equivalent of jQuery .hide() to set visibility: hidden

下一篇: Detect if an element is visible