仅出于好奇,这两种技术哪个更“有效”?
我与我的主管讨论过此事,他告诉我应该创建两个使用display:block/none的类并使用jQuery将它们分配给元素,而不是使用jQuery自己的show/hide函数。
我原本认为show/hide是广泛使用的功能,并且它们可以在不强制分配类的情况下轻松地使我们的生活变得更轻松。
仅出于好奇,这两种技术哪个更“有效”?
我与我的主管讨论过此事,他告诉我应该创建两个使用display:block/none的类并使用jQuery将它们分配给元素,而不是使用jQuery自己的show/hide函数。
我原本认为show/hide是广泛使用的功能,并且它们可以在不强制分配类的情况下轻松地使我们的生活变得更轻松。
jQuery.show()
显示它。无论如何,jQuery.show()
直接设置样式属性,因此浏览器不需要每次分配时查找类的CSS声明。因此,我相信它的工作速度更快,对开发人员也更方便。顺便说一句,带有show/hide
代码的可读性也更高。
只需比较一下
$username.hide();
到
$username.addClass('hidden');
似乎代码更易读,因此更易于维护,这样对于客户来说支持成本更低…等等。
show()
和hide()
只是在display: block
(或inline
、inline-block
等)和display: none
或类似之间切换。使用这些或使用简单的类来在这些样式之间切换都是完全“有效”的。show()
和hide()
支持jQuery动画。此外,类不会添加内联CSS,而show()
和hide()
会(内联html以覆盖初始display
值)。根据您的用例,这可能方便或不方便。
show()
和hide()
还缓存了初始display
值,因此如果您隐藏一个元素然后显示它,它将记住原始display
值(这意味着它更灵活,因为您不需要具有不同类型display
值的元素的唯一可见类)。使用这两种技术都没有什么“无效”的问题。我认为这取决于你的个人喜好。jQuery的show/hide方法完全可以胜任。以下是一些需要考虑的要点:
话虽如此,建议尽可能使用CSS解决方案。如果您创建了具有display block/none的类,就可以在整个应用程序中使用它们。所以最终还是取决于您的个人选择。
我认为这些方法的不同之处在于,通过使用类,您可以选择如何在未来的重新设计中隐藏。您可能希望有一天换上一个新的 CSS,其中“hidden”实际上被划掉并变灰。通过使用类,您保持了演示文稿和数据之间的分离。