有没有区别
jQuery('#id').show() and jQuery('#id').css("display","block")
和
jQuery('#id').hide() and jQuery('#id').css("display","none")
有没有区别
jQuery('#id').show() and jQuery('#id').css("display","block")
和
jQuery('#id').hide() and jQuery('#id').css("display","none")
jQuery('#id').css("display","block")
该属性可以有许多display
可能的值,其中有block
、inline
、inline-block
等等。
该.show()
方法不一定将其设置为block
,而是将其重置为您定义的内容(如果有的话)。
在 jQuery 源代码中,您可以看到他们如何将display
属性设置为 ""(一个空字符串)以检查在任何 jQuery 操作之前它是什么:little link。
另一方面,隐藏是通过 完成的display: none;
,因此您可以考虑.hide()
并.css("display", "none")
等效于某个点。
建议使用.show()
并且.hide()
无论如何避免任何陷阱(另外,它们更短)。
show() 和 css({'display':'block'}) 的区别
假设你一开始就有这个:
<span id="thisElement" style="display: none;">Foo</span>
你打电话时:
$('#thisElement').show();
你会得到:
<span id="thisElement" style="">Foo</span>
尽管:
$('#thisElement').css({'display':'block'});
做:
<span id="thisElement" style="display: block;">Foo</span>
所以,是的,有区别。
hide() 和 css({'display':'none'}) 的区别
与上面相同,但将它们更改为 hide() 和 display':'none'......
另一个区别是
当.hide()
被调用时显示属性的值是保存在jQuery的数据缓存中的,所以当.show()
被调用时,会恢复初始显示值!
是的,两者的性能有所不同:
jQuery('#id').show()
比jQuery('#id').css("display","block")
以前的情况要慢一些额外的工作是为了从 jquery 缓存中检索初始状态,因为 display 不是二进制属性,它可以是inline
, block
, none
,table
等类似方法就是这样hide()
。
请参阅:http: //jsperf.com/show-vs-addclass
在没有参数的情况下, .hide() 方法是隐藏元素的最简单方法:
$('.target').hide(); 匹配的元素将立即隐藏,没有动画。这大致相当于调用 .css('display', 'none'),只是 display 属性的值保存在 jQuery 的数据缓存中,以便稍后可以将 display 恢复为其初始值。如果一个元素的显示值为 inline,然后被隐藏并显示,它将再次被显示为 inline。
节目也一样
是,有一点不同。
jQuery('#id').css("display","block")
将始终将要显示的元素设置为块。
jQuery('#id').show()
will et 是它最初的显示类型,例如 display: inline 。
请参阅Jquery 文档
你可以看看源代码(这里是v1.7.2)。
除了我们可以设置的动画外,这还保留了旧的显示样式(不是所有情况block
,也可以是inline
,,table-cell
...)。
没有参数,.show() 方法是显示元素的最简单方法:
$('.target').show();
匹配的元素将立即显示,没有动画。这大致相当于调用 .css('display', 'block'),除了 display 属性恢复到最初的样子。如果一个元素的显示值为 inline,然后被隐藏并显示,它将再次被显示为 inline。