Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 为什么要在show()之前调用hide()?_Jquery - Fatal编程技术网

Jquery 为什么要在show()之前调用hide()?

Jquery 为什么要在show()之前调用hide()?,jquery,Jquery,为什么要在show()之前调用hide()?在我使用方法链接优化之前,我想知道这一点 function ShowSomething() { jQuery("something").hide(); jQuery("something").show(); } 如果是链接的,则输出没有区别,而jQuery将在非链接版本上实际执行两次DOM查找 就性能而言,非链接实际上要慢24%,如下所示: 查看我的。隐藏将 .hide()将立即触发,并在以下情况下覆盖动画队列: 未指定持续时间或持续时间为

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

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

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

就性能而言,非链接实际上要慢24%,如下所示:


查看我的

。隐藏

.hide()将立即触发,并在以下情况下覆盖动画队列: 未指定持续时间或持续时间为0


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

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

当调用
hide()
时,存储该元素的
显示的初始值,以便在调用
show()
时将初始值放回原位。如果未设置初始值,则
show()
将设置
display:block

因此,如果一个元素最初是
display:inline
,但是(比方说)对该元素调用了
.css(“display”,“none”)
,那么它将被隐藏,不保存初始属性。当我们再次
show()
这个元素时,它将被赋予
display:block
——而不是
inline
的初始值,如果我们使用
hide()
,它将被赋予

总而言之:
hide()
将保留原始的
display
值,以便
show()
使用


来源:jQuery文档

我会调用hide before fadeIn(),因为只能显示隐藏的元素。这是从哪里来的?经验还是文件?我很好奇。