我最好做什么?.hide()
比写出快.css("display", "none")
,但是有什么区别,它们实际上对 HTML 元素做了什么?
jQuery 的 .hide() 和设置 CSS 以显示的区别:无
IT技术
javascript
jquery
html
css
show-hide
2021-03-12 16:18:40
6个回答
查看 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;
}
},
他们是一样的东西。.hide()
调用 jQuery 函数并允许您向其添加回调函数。因此,例如,.hide()
您可以添加动画。
.css("display","none")
将元素的属性更改为display:none
. 这与您在 JavaScript 中执行以下操作相同:
document.getElementById('elementId').style.display = 'none';
该.hide()
函数显然需要更多时间来运行,因为它会检查回调函数、速度等......
使用两者是一个很好的答案;这不是非此即彼的问题。
两者同时使用的好处是CSS 会在页面加载时立即隐藏元素。jQuery .hide 将闪烁元素四分之一秒然后隐藏它。
如果我们希望在页面加载时不显示元素,我们可以使用 CSS 并设置 display:none 并使用 jQuery .hide()。如果我们打算切换元素,我们可以使用 jQuery 切换。