jQuery添加style =“overflow:hidden;”

时间:2013-02-01 12:48:14

标签: javascript jquery css

我已经创建了一些代码来隐藏我的菜单,菜单不完整但是我正在尝试使用jQuery.slideUp()函数但它会在代码中添加style="overflow: hidden;"所以当我使用.show时隐藏了我的元素#nav:after#nav:before,它在菜单底部添加了一个小箭头

这里是js代码

  $("span#start_button").click(function () {
        if ($("#nav").is(":hidden")) {
            $("#nav").show("fast");
        } else {
            $("#nav").slideUp();
        }
    });

这是this site

的结果

如何阻止.slideUp()创建style="overflow: hidden;"

5 个答案:

答案 0 :(得分:13)

您必须删除overflow:hidden功能回调中的slideUp() 所以你可以尝试

$("#nav").slideUp('fast', function(){ $('#nav').css('overflow','visible') });

或者你可以通过css强制它

#nav{overflow:visible!important}

答案 1 :(得分:7)

在较旧的jquery中,这是bug。 此代码替换标准函数“slideDown”并删除overflow属性。

!(function (jQuery, origSlideDown) {
jQuery.fn.slideDown = function (speed, easing, callback) {
    var self = this;
    var args = Array.prototype.slice.call(arguments);
    var origCallback;

    for (var i = 0, len = args.length; i < len; i++) {
        if (jQuery.isFunction(args[i])) {
            origCallback = args[i];
            args[i] = function () {
                origCallback.call(this);
                self.css('overflow', '');
            }
        }
    }

    if (!origCallback) {
        args.push(function () {
            self.css('overflow', '');
        });
    }

    return origSlideDown.apply(this, args);
};
})(jQuery, jQuery.fn.slideDown);

答案 2 :(得分:2)

覆盖该样式 -

   $("#nav").slideUp();
   $("#nav").css({'overflow':'visible'});

答案 3 :(得分:0)

通过修改html的style属性来覆盖默认样式。

else {
       $("#nav").slideUp();
       $("#nav").attr("style","overflow:visible");
    }

答案 4 :(得分:0)

试试这个......

else {
   $("#nav").slideUp();
   $("#nav").css("overflow","visible");
}