jQuery show()和hide()与具有display:block/none的类的比较

jQuery show()和hide()与具有display:block/none的类的比较,jquery,css,Jquery,Css,出于好奇,这两种技术中哪一种更适合使用 我和主管讨论过,他告诉我应该创建两个带有display的类:block/none,并使用jQuery将它们分配给元素,而不是使用jQuery自己的函数show/hide 我的印象是,show/hide是一种被广泛使用的函数,它可以毫无问题地工作,并且通过不强迫我们分配类,它们可以使我们的生活变得更轻松。它们是相同的-show()和hide()只是在display:block之间切换(或内联,内联块等)和显示:无或类似。使用这些或使用简单类在这些样式之间切换

出于好奇,这两种技术中哪一种更适合使用

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


我的印象是,show/hide是一种被广泛使用的函数,它可以毫无问题地工作,并且通过不强迫我们分配类,它们可以使我们的生活变得更轻松。

它们是相同的-
show()
hide()
只是在
display:block
之间切换(或
内联
内联块
等)和
显示:无
或类似。使用这些或使用简单类在这些样式之间切换都是完全“有效的”

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


show()
hide()
也会缓存初始的
display
值,因此如果
hide()
一个元素,然后
show()
它,它会记住原来的
display
值是什么(这意味着它更灵活,因为对于具有不同类型的
显示值的元素,您不需要唯一的可见类)。

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

比较一下

$username.hide();

似乎代码更可读,因此更易于维护,因此客户支持它的成本更低……等等。

使用这两种技术中的任何一种都没有“无效”的地方。我相信这取决于您的偏好。jQuery的显示/隐藏方法工作得非常好。需要考虑的一些问题

  • 如果您使用show/hide,那么它是一个纯粹的基于javascript/jquery的解决方案
  • 如果您通过使用jquery分配CSS类来使用它们,那么这个方法涉及CSS+jquery

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

我认为方法的不同之处在于,通过使用类,您可以选择如何使用它们隐藏在将来的重新样式中。您可能希望有一天在一个新的CSS中进行交换,其中隐藏实际上被划过并显示为灰色。通过使用类,您可以保持表示和数据的分离。

它们工作得很好。这可能是您工作的编码标准的问题。完全相同…当然,如果您使用jquery,则更喜欢显示nd hide而不是生成类…关于show和hide的唯一内容是使inlin样式在这里看到区别:Ih end jquery show/hide添加了一个带有display:block/none的内联样式虽然这是一个有趣的主题,但它主要是基于观点的,因此我恐怕不属于堆栈溢出。最后,选择betwe两者都不是更“有效”也不是更“恰当”,而是取决于环境而非其他因素。
$username.addClass('hidden');