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

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

是否有一个等价的function,将设置visibility: hidden设置?

我知道我可以使用.css()但我更喜欢一些像.hide()左右的function。 谢谢。

你可以做自己的插件。

 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() ,我不build议…

 !(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"); }); }); 

如果只需要隐藏的标准function,只隐藏可见性:隐藏以保持当前的布局,您可以使用隐藏的callback函数来更改标签中的CSS。 在jquery中隐藏文档

一个例子 :

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

这将使用正常的酷animation隐藏div,但animation完成后,您将可见性设置为隐藏并显示以阻止。

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

我知道你不想要$(“#aa”).css()解决scheme,但是你没有指定是否因为只使用了css()方法而失去了animation。