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。