我最好做什么?.hide()
比写出来要快.css("display", "none")
,但是有什么区别,它们实际上对HTML元素做了什么?
我最好做什么?.hide()
比写出来要快.css("display", "none")
,但是有什么区别,它们实际上对HTML元素做了什么?
Answers:
在有关.hide()的jQuery页面中:
“匹配的元素将立即隐藏,没有动画。这大致相当于调用.css('display','none'),不同之处在于display属性的值存储在jQuery的数据缓存中,以便以后可以显示恢复为初始值。如果元素的显示值为inline,则该元素将被隐藏并显示,它将再次以inline显示。”
因此,如果能够恢复到的先前值很重要,则display
最好使用,hide()
因为这样可以记住先前的状态。除此之外,没有区别。
查看jQuery代码,会发生以下情况:
hide: function( speed, easing, callback ) {
if ( speed || speed === 0 ) {
return this.animate( genFx("hide", 3), speed, easing, callback);
} else {
for ( var i = 0, j = this.length; i < j; i++ ) {
var display = jQuery.css( this[i], "display" );
if ( display !== "none" ) {
jQuery.data( this[i], "olddisplay", display );
}
}
// Set the display of the elements in a second loop
// to avoid the constant reflow
for ( i = 0; i < j; i++ ) {
this[i].style.display = "none";
}
return this;
}
},
两者在所有浏览器AFAIK上的功能都相同。已在Chrome和Firefox上选中,均附加display:none
到style
元素的属性。
如果使用基本的hide方法,则看不到任何区别。但是jquery提供了各种隐藏方法,这些隐藏方法使元素发挥作用。请参阅下面的链接以获取详细说明: Jquery中的隐藏效果