之间有什么区别吗?
jQuery('#id').show() and jQuery('#id').css("display","block")
和
jQuery('#id').hide() and jQuery('#id').css("display","none")
答案 0 :(得分:90)
的jQuery( '#标识')。CSS( “显示”, “块”)
display
属性可以包含许多可能的值,其中包括block
,inline
,inline-block
和many more。
.show()
方法并未将其设置为block
,而是将其重置为您定义的方式(如果有的话)。
在jQuery源代码中,您可以看到他们如何将display
属性设置为“”(一个空字符串)以检查在任何jQuery操作之前它是什么:little link。
另一方面,隐藏是通过display: none;
完成的,因此您可以将.hide()
和.css("display", "none")
视为相当于某一点。
建议最后使用.show()
和.hide()
以避免任何问题(加上,它们会更短)。
答案 1 :(得分:32)
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()并显示':'none'......
另一个差异
调用.hide()
时,显示属性的值保存在jQuery的数据高速缓存中,因此在调用.show()
时,将恢复初始显示值!
答案 2 :(得分:6)
是的,两者的表现有所不同:
jQuery('#id').show()
比jQuery('#id').css("display","block")
慢,因为在前一种情况下,要从jquery缓存中检索初始状态需要额外的工作,因为display不是二进制属性,它可以是inline
,{{ 1}},block
,none
等
与table
方法类似。
答案 3 :(得分:4)
没有参数,.hide()方法是隐藏的最简单方法 元素:
。$( '目标')隐藏(); 匹配的元素将立即隐藏,没有动画。这大致相当于调用.css('display', 'none'),除了显示属性的值保存在 jQuery的数据缓存,以便稍后可以将显示恢复到其中 初始值。如果元素的显示值为内联,则为 隐藏和显示,它将再次显示内联。
相同的节目
答案 4 :(得分:3)
是的,有区别。
jQuery('#id').css("display","block")
将始终将您要显示的元素设置为阻止。
jQuery('#id').show()
将是它最初的显示类型,显示:内联,例如。
请参阅Jquery Doc
答案 5 :(得分:2)
您可以查看source code(此处为v1.7.2)。
除了我们可以设置的动画之外,这还会在内存中保留旧的显示样式(在所有情况下都不是block
,它也可以是inline
,table-cell
, ...)。
答案 6 :(得分:1)
请参阅http://api.jquery.com/show/
没有参数,.show()方法是显示元素的最简单方法:
$( '目标')显示();
匹配的元素将立即显示,没有动画。这大致相当于调用.css('display','block'),除了display属性恢复到最初的状态。如果元素的显示值为内联,则隐藏并显示,它将再次以内联方式显示。