5

只是出于好奇,这两种技术中哪一种更“有效”?

我和我的主管讨论过,他告诉我应该使用 display:block/none 创建两个类,并使用 jQuery 将它们分配给元素,而不是使用 jQuery 自己的函数显示/隐藏。

我的印象是显示/隐藏是广泛使用的功能,它们可以毫无问题地工作,并且通过不强迫我们分配类来使我们的生活更轻松。

4

4 回答 4

1

它们是相同的 -show()只是在(或,等)和或类似hide()之间切换。使用这些或使用简单的类在这些样式之间切换都是完全“有效的”。 display: blockinlineinline-blockdisplay: none

主要区别在于它show()支持hide()开箱即用的 jQuery 动画。此外,类不会添加内联 CSS,而show()会添加hide()(内联 html 以覆盖初始display值)。根据您的用例,这可能方便也可能不方便。

show()并且hide()还缓存初始display值,所以如果你hide()是一个元素然后show()它,它会记住原始display值是什么(这意味着它更灵活,因为你不需要具有不同类型display值的元素的唯一可见类)。

于 2013-11-14T15:34:27.340 回答
1

您可以使用此类 CSS 类来最初隐藏页面上的元素,以便稍后使用jQuery.show(). 无论如何jQuery.show(),直接设置样式属性,因此浏览器不需要在每次分配时通过 CSS 声明查找类。所以我相信它会工作得更快,也更方便开发人员。顺便说一句,代码show/hide也更具可读性。

只是比较

$username.hide();

$username.addClass('hidden');

似乎代码更具可读性,因此更易于维护,因此客户支持它更便宜......等等。

于 2013-11-14T15:35:58.483 回答
0

使用这两种技术中的任何一种都没有“无效”的地方。我相信这归结为您的偏好。jQuery 的显示/隐藏方法运行良好。需要考虑的几点

  • 如果您使用显示/隐藏,它是一个纯基于 javascript/jquery 的解决方案。
  • 如果您通过使用 jquery 分配它们来使用 CSS 类,则此方法涉及 CSS + jquery

话虽如此,始终建议尽可能使用 CSS 解决方案。如果您像您说的那样创建带有显示块/无的类,则可以在整个应用程序中使用它们。所以我想这最终取决于你个人的选择。

于 2013-11-14T15:37:20.053 回答
0

我认为这些方法的不同之处在于,通过使用类来实现,你可以选择在未来的重新设计中如何隐藏。有一天,您可能想换入一个新的 CSS,其中隐藏实际上是穿过并变灰的。通过使用类,您可以保持表示和数据的分离。

于 2013-11-14T15:42:52.730 回答