【问题标题】:jquery choosing methodsjquery选择方法
【发布时间】:2011-06-01 21:03:00
【问题描述】:

我喜欢使用 hide() 和 show() 方法,但我遇到过一些他们从未使用过的脚本。
相反,我看到他们使用 attr() 来处理与显示相关的任何事情。

$("#element").attr("style", "visibility:hidden");
$("#element").attr("style", "visibility:visible");

这只是纯粹的优惠吗?
还是使用一个比另一个更有益?

【问题讨论】:

    标签: jquery-attributes


    【解决方案1】:

    有区别。以.hide() 为例:

    这大致相当于调用.css('display', 'none'), (...)

    visibilitydisplay 是两个不同的 CSS 属性。使用visibility: hidden; 会为布局中的元素留出空间,但不会显示它。

    另一个(次要)区别是调用.attr("style", '...') 将覆盖可能在元素上设置的所有其他样式。

    【讨论】:

      【解决方案2】:

      Hide() 和 show() 有效地从源 HTML 中删除元素。

      可见性规则只影响你是否能看到元素的内容;他们占用的空间仍然保留,成为一个空白点。

      【讨论】:

        【解决方案3】:

        确实存在差异。 show() 和 hide() 方法允许您通过设置显示或隐藏的持续时间来使用动画。此外,hide 将跟踪当前的显示设置(内联、块等)。 http://api.jquery.com/hide/

        使用 .css('display', 'none') 或 .css('display', 'block') 可能更快,但提供的功能较少。

        当您使用 show()/hide() 或 .css() 来控制显示时,根据您要完成的操作优先。

        还有一个注意事项。 TheDramaLama 说 hide() 从源代码中删除元素。我认为 TheDramaLama 的意思是它在位置上删除它,但它仍然保留在源代码(也称为 DOM)中。

        【讨论】:

        • 对,我的措辞不好。 :) 我的意思是指占用页面空间,因为它有效地“消失”了元素。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多