jQuery show()vs添加Class

bba*_*bba 10 javascript css performance jquery

哪一个更有效(即更快):

$(elem).show();
Run Code Online (Sandbox Code Playgroud)

要么

$(elem).addClass(displayClass); // Where display class is "display: block;"
Run Code Online (Sandbox Code Playgroud)

还是他们一模一样?

Nic*_*ver 20

这取决于你所追求的,他们做不同的事情:

  • $(elem).show();- 显示元素,恢复display之前.hide()或恢复display元素类型的默认值
  • $(elem).addClass(displayClass);-增加了一个类,总是与一定的display,没有真正恢复什么那里-这是不太灵活

哪个更快.addClass()放下手,你可以在这里自己测试一下,它的工作量远远少于.show().但是,它没有那么多功能,所以由于上述原因它不太灵活.


Poi*_*nty 7

不,他们绝对一样.

对元素样式的直接修改和通过更改元素类的"间接"修改之间存在很大差异,这确实应该非常明显.通过在Javascript和CSS之间编写协作代码,类更改为您提供了更大的灵活性.Javascript管理元素的状态,而CSS驱动该状态的实际效果.

show()hide()方法是方便和容易,但(在我看来)管理状态/外观类名确实是一个更强大和维护的方式来做事.实际上,您总是可以编写自己的小jQuery插件来添加/删除对您的应用程序有意义的类,以避免类名本身在您的代码中传播.