8

隐藏隐藏元素有多糟糕?

所以,假设元素#myelement是隐藏的,我做了一个$('#element').hide(). 那不好吗?我应该先检查它是否可见吗?

谢谢!

4

5 回答 5

15

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" ) );
    }

因此,您不需要执行额外的检查。任何手动检查都会使性能(实际上是可读性)变差。

于 2012-11-02T08:37:03.360 回答
2

如果可以选择

$("my-element").hide();

if(!$("my-element").is(":visible")) {
    $("my-element").hide();
})

为了可读性起见,仅使用第一行要简单得多(更好?)。jQuery 会检查你是否这样做。

于 2012-11-02T08:47:21.453 回答
0

如果隐藏已经隐藏的元素,则不会发生任何事情。

它“坏”的唯一方法是它正在执行不需要执行的代码。

您可以使用 is() 检查它是否隐藏:

if(!$("my-element").is(":visible")) {
    $("my-element").hide();
})
于 2012-11-02T08:36:44.950 回答
0

hiding对于元素,您不需要检查该元素是否已经hidden存在,但是如果您有类似的情况,例如该元素是否显示,则执行其他操作,则可以使用

if ($('your-element').is(':hidden')) {
$('your-element').show();
} else {
//do something else
}
于 2012-11-02T08:43:53.960 回答
0

最好在隐藏元素之前检查元素的可见性。

 $('#element').hide();

它会在 Internet Explorer(IE9) 中引起一些问题。某些时间页面将无法正确加载。页面上会遗漏一些内容。

下面的代码要好得多。

if(!$("#myelement").is(":visible")) {
    $("#myelement").hide();
})
于 2012-11-02T09:14:06.303 回答