等效于 jQuery .hide() 来设置可见性:hidden

2022-08-29 23:34:02

在jQuery中,有和方法可以设置CSS设置。.hide().show()display: none

是否有等效的函数来设置设置?visibility: hidden

我知道我可以使用,但我更喜欢一些这样的功能。谢谢。.css().hide()


答案 1

你可以制作自己的插件。

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.


答案 2

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

(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();

下面是一个工作示例