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