jQuery的hide()和.css('display','none')之间的区别?

时间:2011-01-06 00:11:09

标签: javascript jquery

我使用设置CSS样式属性的通用JavaScript更改了几页

element.style.display = "none";

到jQuery的方法

element.hide();

当使用后退按钮返回我的页面时,不再隐藏使用jQuery隐藏的元素。当我使用原始JavaScript设置显示时,隐藏的元素在我返回页面时保持隐藏状态。

是否有解决方法允许jQuery的hide()函数以相同的方式工作?

3 个答案:

答案 0 :(得分:9)

jQuery的hide方法执行

        for ( i = 0; i < j; i++ ) {
            this[i].style.display = "none";
        }

你还有其他问题。

完整的方法是

hide: function( speed, easing, callback ) {
    if ( speed || speed === 0 ) {
        return this.animate( genFx("hide", 3), speed, easing, callback);

    } else {
        for ( var i = 0, j = this.length; i < j; i++ ) {
            var display = jQuery.css( this[i], "display" );

            if ( display !== "none" ) {
                jQuery.data( this[i], "olddisplay", display );
            }
        }

        // Set the display of the elements in a second loop
        // to avoid the constant reflow
        for ( i = 0; i < j; i++ ) {
            this[i].style.display = "none";
        }

        return this;
    }
},

答案 1 :(得分:3)

存在巨大差异:
调用.hide()时,显示属性的值保存在jQuery的数据高速缓存中,因此在调用.show()时,将恢复初始显示值!

答案 2 :(得分:0)

它是一样的。 jQuery hide应用display:none;对元素。是什么触发你的隐藏?是在文件中。已经??看起来当你点击“返回”时它不会执行javascript。