4

为什么要在 show() 之前调用 hide() ?在我使用方法链接优化它之前,我想知道这一点。

function ShowSomething() {
  jQuery("something").hide();
  jQuery("something").show();
}
4

4 回答 4

4

当调用hide()该元素的初始值时,该元素的初始值display被存储为何时show()被调用,该初始值被放回原处。如果没有设置初始值,则show()设置display:block.

因此,如果一个元素最初是display:inline,但是(比方说).css("display","none")在该元素上被调用,它将被隐藏而没有保存初始属性。当我们show()再次使用这个元素时,它将被给出display:block——而不是它的初始值,inline如果我们使用hide().

总结:hide()将保留原始displayshow()以供使用

资料来源:jQuery hide()文档

于 2013-05-15T11:09:51.873 回答
3

如果是链接的,则输出没有区别,除了 jQuery 实际上会在非链接版本上执行两次 DOM 查找。

在性能方面,non-chaining 实际上慢了 24%,如下图所示:

jsperf

见我的JSPerf

于 2013-05-15T11:04:50.497 回答
0

当您有一系列元素需要一次显示一个时,通常会出现这种情况。首先,您隐藏具有特定类的所有元素,然后显示您想要的元素。

于 2013-05-15T11:08:37.187 回答
0

.hide将要

.hide() 会立即触发,如果没有指定持续时间或指定持续时间 0,它将覆盖动画队列。

因此,如果动画已经在队列中,它将被删除,然后使用.show(). 对于从不存在到存在的某些动画,它也可能有用(视觉上)。您可以将它们链接在一起,这没有任何区别。

于 2013-05-15T11:05:25.983 回答