JQuery Visible Show

我有以下代码:

$('#loading').css("visibility", "visible"); $('#loading').show(); 

由于某些原因我使用CSS时不知道它的工作原理!

但是当我使用.show();

这是行不通的。 请帮忙。 我是JQuery的新手。

谢谢。

编辑:

 

试过这个:

 

然后:

 $('#loading').hide(); 

仍然没有出于某种原因!

编辑:奇怪的是它适用于所有其他DIV!

使用display:none; 而不是可见性

这对我来说很好

 $(function(){ $("#aLink2").click(function(){ $('#loading').show(); }); });​ 

工作样本: http : //jsfiddle.net/HShHg/6/

jQuery的.show().show()仅在CSS display属性上运行,而不在visibility属性上运行。 我刚检查了jQuery 1.7源代码并validation了这种情况。

因此, .css('display', 'none')将与.show()匹配。

如果要更改可见性,只需直接更改css或使用自己的hideV()showV()方法为您执行此操作:

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

根据文件:

.show() This is roughly equivalent to calling .css('display', 'block')

所以,如果你搞砸了visibility ,它对你没有帮助。

你应该做的是,总是用.css('display', 'none').hide()隐藏


我刚发现这个有用的文档 :

具有可见性的元素:隐藏或不透明度:0 被认为是可见的 ,因为它们仍然占用布局中的空间。

jQuery .show()要求display:none css属性

我会坚持把visibility: hidden; 在元素上然后使用.css("visibility", "visible"); 准确地显示它,因为它仍占用页面上的空间。

这将避免加载时的抖动页面和可见内容( FOUC )的可怕Flash。