2011-03-23 19 views
7

हो क्या मैं jquery ui संवाद के लिए डिफ़ॉल्ट मान सेट करता हूं? उदाहरण के लिए, यह कैसे मैं jQuery के यूआई datepicker में डिफ़ॉल्ट सेट है:Jquery UI संवाद डिफ़ॉल्ट कैसे सेट करें

$.datepicker.setDefaults({ dateFormat: 'dd/mm/yy' }); 

मैं संवाद दस्तावेज में ही कार्यक्षमता को खोजने सके (http://docs.jquery.com/UI/Dialog)

उत्तर

11

मैं एक समाधान

$.extend($.ui.dialog.prototype.options, { modal: true, width: 650 }); 
+0

'$ .extend' पहला तर्क mutates पाया। आप 'विकल्प' ऑब्जेक्ट में स्टैकिंग गुणों को समाप्त कर देंगे। @ ग्रोवेट्रेन के जवाब में एक खाली हैश का उपयोग करने का उल्लेख देखें। –

+1

यह लक्ष्य है: डिफ़ॉल्ट विकल्प ऑब्जेक्ट को म्यूटेट करें ... – Softlion

+0

यदि आप डिफ़ॉल्ट विकल्प बदलना चाहते हैं, तो यह एक अच्छा समाधान है, जो मूल प्रश्न पूछता है। –

7

उस AFAIK के लिए कोई अंतर्निहित कार्यक्षमता है, लेकिन क्या मैं आमतौर पर चाहते हैं कि वे अपने आप में एक अलग हैश में इस तरह सेट कर दिया जाता है:

var dialog_defaults = { 
    autoopen: false, 
    buttons: { 
    close: function() { $(this).dialog('close'); } 
    }, 
    .... 
}; 

फिर जब मैं संवाद बनाने के लिए, मैं करने के लिए jQuery के विस्तार विधि का उपयोग उन्हें काम करें, इस तरह:

$('#divvie').dialog(
    $.extend({}, dialog_defaults, { 
    autoopen: true 
    }); 
); 

आपके द्वारा पारित तर्कों का दूसरा सेट संवाद_defaults चर में जो भी हो, ओवरराइट/विलय करेगा। बस सुनिश्चित करें कि आपने वहां खाली हैश ({}) डाला है, या आपके डिफ़ॉल्ट ओवरराइट हो जाएंगे, जो मुझे अतीत में काट रहा है।

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