2013-02-01 13 views
13

मैंने अपना मेनू छुपाने के लिए थोड़ा सा कोड बनाया है, मेनू पूरा नहीं हुआ है, लेकिन मैं jQuery.slideUp() फ़ंक्शन का उपयोग करने की कोशिश कर रहा हूं लेकिन यह कोड में style="overflow: hidden;" जोड़ता है, इसलिए जब मैं उपयोग करता हूं। मेरे तत्वों में से एक छिपा हुआ है जो #nav:after है और #nav:before जो मेनूjQuery जोड़ने शैली = "अतिप्रवाह: छुपा;"

यहाँ

की तह तक एक छोटा सा तीर कहते हैं जे एस कोड

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

है और यहाँ this site

पर परिणाम है मैं बनाने से .slideUp() रोक सकता है कैसे style="overflow: hidden;"?

+2

इसके बजाय आप क्या करना चाहते हैं? यदि आप इसे गायब होने के बिना बस स्लाइड करना चाहते हैं तो आप इसके बजाय 'एनिमेट() 'का उपयोग कर सकते हैं। – gideon

+0

साइट पर देखें, मैं नहीं चाहता कि तीर '.slideUp()' फ़ंक्शन – LegendaryLaggy

उत्तर

12

आप slideUp() समारोह की कॉलबैक पर overflow:hidden निकालना होगा ताकि आप कोशिश कर सकते हैं

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

या आप सीएसएस

#nav{overflow:visible!important} 
+0

और, * क्यों * हमें चाहिए? क्योंकि (एंड्री के जवाब से), यह पुराने jQuery में एक बग है। निजी तौर पर, मैंने अपने jQuery संस्करण को और अधिक सुविधाजनक अपग्रेड किया। –

0

एचटीएमएल की शैली विशेषता को संशोधित करके डिफ़ॉल्ट स्टाइल ओवरराइड करें।

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

का उपयोग करने के बाद गायब हो जाए, केवल कोड ही उत्तर के रूप में केवल खराब हैं। वे वास्तव में बिल्कुल जवाब नहीं दे रहे हैं। एक अच्छे उत्तर में स्पष्टीकरण और तर्क और संभवतः कुछ स्रोत या प्राधिकरण शामिल हैं। – markus

+0

धन्यवाद @ मार्कस-थर्कुन। एक स्पष्टीकरण जोड़ा है। – Srihari

0

इस प्रयास करें ...

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

अवहेलना कि शैली -

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

यह पुराने jQuery में bug है द्वारा यह मजबूर कर सकते हैं। यह कोड स्टैंडअर्ट फ़ंक्शन "स्लाइडडाउन" को प्रतिस्थापित करता है और ओवरफ़्लो प्रॉपर्टी हटा देता है।

!(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); 
+0

jQuery.support.shrinkWrapBlocks अनजाने में सेट होने लगते हैं जब बूट-साइजिंग रीसेट और बूटस्ट्रैप जैसे ढांचे में बदल जाती है, लेकिन यह jQuery 1.11 में तय की जाती है। –

संबंधित मुद्दे