相当于jQuery .hide()来设置可见性:隐藏

TMS*_*TMS 325 javascript css jquery visibility

在jQuery的,也有.hide().show()其设置方法CSS display: none设置.

是否有相同的功能可以设置visibility: hidden设置?

我知道我可以使用,.css()但我更喜欢某种功能.hide().谢谢.

ale*_*lex 410

你可以制作自己的插件.

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';
    });
};
Run Code Online (Sandbox Code Playgroud)

如果你想重载原始的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);
Run Code Online (Sandbox Code Playgroud)

jsFiddle.

  • 如果以这种方式看待它,那就太棒了,但是有一个目的.如果它与`(function(){})()`或类似的东西连接到另一个脚本,ASI将不会启动,因为它看起来像一个函数调用.试试[this](http://jsfiddle.net/AT8xn/),然后删除`!`. (11认同)

Jam*_*ice 98

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

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

然后您可以这样调用:

$("#someElem").invisible();
$("#someOther").visible();
Run Code Online (Sandbox Code Playgroud)

这是一个有效的例子.

  • @VoidKing - 根据文档,它只是jQuery插件的"最佳实践".它允许您在函数内部使用`$`标识符,即使它引用父作用域中的其他内容. (2认同)

Cha*_*per 54

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

CSS

.newClass{visibility: hidden}
Run Code Online (Sandbox Code Playgroud)

HTML

<a href="#" class=trigger>Trigger Element </a>
<div class="hidden_element">Some Content</div>
Run Code Online (Sandbox Code Playgroud)

JS

$(document).ready(function(){
    $(".trigger").click(function(){
        $(".hidden_element").toggleClass("newClass");
    });
});
Run Code Online (Sandbox Code Playgroud)

  • 对于那些使用bootstrap的人来说,这个类叫做隐形. (18认同)

h3c*_*t0r 25

如果您只需要隐藏标准功能,只需使用visibility:hidden来保持当前布局,您可以使用hide的回调函数来更改标记中的css.在jquery中隐藏文档

一个例子 :

$('#subs_selection_box').fadeOut('slow', function() {
      $(this).css({"visibility":"hidden"});
      $(this).css({"display":"block"});
});
Run Code Online (Sandbox Code Playgroud)

这将使用常规酷动画来隐藏div,但在动画完成后,您将可见性设置为隐藏并显示为块.

一个例子:http://jsfiddle.net/bTkKG/1/

我知道你不想要$("#aa").css()解决方案,但你没有指定是否因为只使用css()方法而丢失了动画.