2009-11-14 20 views
9

अवरुद्ध नहीं है मैं जावास्क्रिप्ट और jQuery के लिए नया हूं। मैं jQuery यूआई विजेट्स का उपयोग कर एक मोडल संवाद को लागू करने की कोशिश कर रहा हूं।jQuery यूआई मोडल संवाद

मोडल संवाद ठीक से और रद्द बटन के साथ दिखाता है, लेकिन संवाद ('खुला') फ़ंक्शन कॉल ब्लॉक करने के लिए प्रतीत नहीं होता है और ठीक है या रद्द करें क्लिक करें। उदाहरण के लिए, जब मैं निम्नलिखित कोड

..... बटन पर चलने क्लिक

okToDelete = false; //a global variable 
    $('deleteDialog').dialog('open'); //this does not block but returns immediately 
    alert(okToDelete == true ? "ok" : "false"); 

चेतावनी बॉक्स पहले प्रदर्शित किया जाता है और तो मॉडल संवाद दिखाता है! okToDelete एक वैश्विक चर है जो मैं फ़ंक्शन दर्ज करता हूं और ठीक बटन कॉलबैक में सत्य पर सेट करता हूं।

यहाँ मेरी संवाद init समारोह

$("#deleteDialog").dialog({ 
     bgiframe: true, 
     autoOpen: false, 
     modal: true, 
     overlay: { 
      backgroundColor: '#000', 
      opacity: 0.5 
     }, 
     buttons: { 
      Cancel: function() { 
       $(this).dialog('close'); 

      }, 
      Ok: function() { 
       $(this).dialog('close'); 
       okToDelete = true; 
      } 
     } 
    }); 

उत्तर

11

यह ब्लॉक 'के लिए नहीं किया जाता है। यदि आप चेतावनी प्रदर्शित करना चाहते हैं (मुझे लगता है कि यह परीक्षण के लिए है) या संवाद बंद होने के बाद अन्य कार्यों को कॉल करें, यदि आप इसे callback या ok, cancel फ़ंक्शंस में रखें।

इस चेक आउट:
http://docs.jquery.com/UI/Dialog#event-close

घटना close डॉक्स से:
जब संवाद बंद कर दिया है इस घटना को शुरू हो रहा है।
कोड उदाहरण

एक ईवेंट विकल्प के रूप में बंद ईवेंट को संभालने के लिए कॉलबैक फ़ंक्शन की आपूर्ति करें।

$('.selector').dialog({ 
    close: function(event, ui) { ... } 
}); 

प्रकार के अनुसार बंद घटना से जुड़ें: संवाद बॉक्स।

$('.selector').bind('dialogclose', function(event, ui) { 
    ... 
}); 
संबंधित मुद्दे