隐藏隐藏元素有多糟糕?
所以,假设元素#myelement
是隐藏的,我做了一个$('#element').hide()
. 那不好吗?我应该先检查它是否可见吗?
谢谢!
jQuery 检查元素是否可见并仅在可见时隐藏:https ://github.com/jquery/jquery/blob/master/src/css.js#L78
} else if ( !values[ index ] && !isHidden( elem ) ) {
jQuery._data( elem, "olddisplay", curCSS( elem, "display" ) );
}
因此,您不需要执行额外的检查。任何手动检查都会使性能(实际上是可读性)变差。
如果可以选择
$("my-element").hide();
和
if(!$("my-element").is(":visible")) {
$("my-element").hide();
})
为了可读性起见,仅使用第一行要简单得多(更好?)。jQuery 会检查你是否这样做。
如果隐藏已经隐藏的元素,则不会发生任何事情。
它“坏”的唯一方法是它正在执行不需要执行的代码。
您可以使用 is() 检查它是否隐藏:
if(!$("my-element").is(":visible")) {
$("my-element").hide();
})
仅hiding
对于元素,您不需要检查该元素是否已经hidden
存在,但是如果您有类似的情况,例如该元素是否显示,则执行其他操作,则可以使用
if ($('your-element').is(':hidden')) {
$('your-element').show();
} else {
//do something else
}
最好在隐藏元素之前检查元素的可见性。
$('#element').hide();
它会在 Internet Explorer(IE9) 中引起一些问题。某些时间页面将无法正确加载。页面上会遗漏一些内容。
下面的代码要好得多。
if(!$("#myelement").is(":visible")) {
$("#myelement").hide();
})