2012-11-18 18 views
7

मैं नीचे एक 'चेकआउट' बटन के साथ एक सरल बूटस्ट्रैप मोडल प्रदर्शित कर रहा हूं।देरी के साथ ट्विटर बूटस्ट्रैप मोडल ('छुपाएं')

  1. मोडल बंद करें, उदाहरण के लिए:

    बटन पर क्लिक करने पर मैं चाहता हूँ $ ('# MyModal')। मोडल ('छिपाएं')

  2. प्रतीक्षा जब तक एनीमेशन मेरे 'चेकआउट' पृष्ठ पर window.location.href समाप्त हो गया है
  3. बदलें।

मुझे इसके बिना चेनिंग का कोई तरीका नहीं मिल रहा है, इसके तुरंत बाद अगले फ़ंक्शन को चलाया जा रहा है, उदा।

$('#myModal').modal('hide').each(function() { 
    window.location.href = '/checkout'; 
}); 

या मैंने सोचा कि देरी() मदद कर सकती है, उदा।

$('#myModal').modal('hide').delay(1000).each(function() { 
    window.location.href = '/checkout'; 
}); 

यह काम नहीं करता है या तो यह तुरंत पृष्ठ बदलता है।

क्या यह एक आम jQuery मुद्दा है? या मुझे इसे संभालने के लिए बूटस्ट्रैप का विस्तार करना होगा?

उत्तर

10

hidden नामक एक ईवेंट है जब ट्विटर बूटस्ट्रैप मोडल पूरी तरह छुपा हुआ है। तो आप इस तरह कुछ कर सकते हैं:

$('#myModal').bind('hidden', function(){ 
    window.location.href = '/checkout'; 
}).modal('hide'); 
+4

मैं इसे उत्तर में जोड़ना चाहता था। आप 'बाइंड' के बजाय 'one' का उपयोग कर सकते हैं। तो आपके फ़ंक्शन को केवल एक बार ** आपके निम्नलिखित छुपा विधि कॉल के ठीक बाद निष्पादित किया जाएगा। और हाँ, आपको चेकआउट बटन क्लिक पर यह कोड पूरा करना चाहिए। – Inferpse

+0

धन्यवाद, मैंने ऊपर की कोशिश की और यह काम किया। मैं पहली बार संकोच कर रहा था क्योंकि मैंने सोचा था कि स्कोप सभी मोडल बंद हो सकता है, सिर्फ 'चेकआउट' बटन पर क्लिक न करें, लेकिन यह पूरी तरह से काम करता है! – AndyC

+8

यदि आप बूटस्ट्रैप 3 में सटीक वही व्यवहार की तलाश में हैं, तो "छुपा" के बजाय "hidden.bs.modal" ईवेंट का उपयोग करें। – mdrozdziel

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