我喜欢使用hide()和show()方法,但我遇到过某人的脚本,他们从不使用它。
相反,我看到他们使用attr()来处理与显示有关的任何内容。
$("#element").attr("style", "visibility:hidden");
$("#element").attr("style", "visibility:visible");
这只是纯粹的优惠吗? 或者使用一个与另一个相比更有利吗?
答案 0 :(得分:3)
有区别。以.hide()
为例:
这大致相当于调用
.css('display', 'none')
,(...)
visibility
和display
是两种不同的CSS属性。使用visibility: hidden;
会为布局中的元素留出空间,但不会显示它。
另一个(次要的)区别是调用.attr("style", '...')
将覆盖可能在元素上设置的所有其他样式。
答案 1 :(得分:1)
Hide()和show()有效地从源HTML中删除元素。
可见性规则仅影响您是否可以看到元素'内容;他们占用的空间仍然保留,并成为一个空白点。
答案 2 :(得分:1)
肯定存在差异。 show()和hide()方法允许您通过设置显示或隐藏的持续时间来使用动画。此外,隐藏将跟踪当前显示设置(内联,阻止等)。 http://api.jquery.com/hide/
使用.css('display','none')或.css('display','block')可能更快,但确实提供的功能更少。
当你使用show()/ hide()或.css()控制显示时,优先根据你想要完成的事情。
还有一点需要注意。 TheDramaLama说hide()从源代码中删除了元素。我认为TheDramaLama的意思是它会在位置上删除它,但它仍然保留在源代码中(也就是DOM)。