2012-02-15 15 views
5

मैं कई jQuery यूआई संवाद संचालकों है, जो सभी के निम्न होना निर्धारित किया है। मैं सोच रहा था कि क्या यह सेट डिफ़ॉल्ट रूप से संभव है, ताकि मुझे इस कोड को पृष्ठ पर प्रत्येक संवाद कॉन्फ़िगरेशन में डालना न पड़े।jQuery यूआई संवाद एक डिफ़ॉल्ट config

मुझे पता है कि मैं सीएसएस को संपादित कर सकता हूं, लेकिन अगर इसकी आवश्यकता नहीं है तो वास्तव में कक्षा को हटाने के लिए और अधिक समझदारी होती है।

+0

'डिफ़ॉल्ट के रूप में सेट' से आपका क्या मतलब है? वह सीएसएस को संपादित करेगा। जब भी आप गोलाकार कोनों को हटाने के लिए आसानी से सीएसएस को संपादित कर सकते हैं तो संवाद को खोले जाने पर मुझे जावास्क्रिप्ट को नियोजित करने की आवश्यकता नहीं होती है। – j08691

+0

शायद इसे बेहतर उत्तर के लिए देखना चाहें: http://stackoverflow.com/questions/2287045/override-jqueryui-dialog-default- विकल्प – phazei

उत्तर

8

मुझे पता है कि यह सही नहीं है, लेकिन आप अपना खुद का defaults ऑब्जेक्ट परिभाषित कर सकते हैं जिसमें आपके डिफ़ॉल्ट हैं। तो अगर आप ओवरराइड या उन डिफ़ॉल्ट रूप में जोड़ने की जरूरत है, तो आप $.extend इस्तेमाल कर सकते हैं:

var dialogDefaults = { 
    open: function (event, ui) { 
     $(".ui-dialog-titlebar").removeClass("ui-corner-all"); 
     $(".ui-dialog").removeClass("ui-corner-all"); 
    } 
}; 
// then later on: 
$("#foo").dialog($.extend({ }, dialogDefaults, { 
    autoOpen: false, 
    width: 500, 
    /* etc... */ 
})); 

इसके अलावा घटनाओं के लिए याद रखें कि, आप विकल्पों में से बाहर करने के लिए उन्हें बाध्य कर सकते हैं वस्तु on का उपयोग कर (या उसके भाई बहन delegate द्वारा, bind, और live)। आप उदाहरण के लिए, अपने संवादों के सभी के लिए एक ही कक्षा लगाने से कई संवाद करने के लिए कि ईवेंट हैंडलर लागू कर सकते हैं:

$("div.my-dialog-class").on("dialogopen", function (event, ui) { 
    $(".ui-dialog-titlebar").removeClass("ui-corner-all"); 
    $(".ui-dialog").removeClass("ui-corner-all"); 
}); 

बस है कि इस ईवेंट हैंडलर नई संवाद के लिए बंद सक्रिय नहीं होगा ध्यान में रखना। आप body को डोम अप ईवेंट बबल जाने और वहाँ ईवेंट हैंडलर देते हैं सकता है (यह मैं जाना होगा मार्ग है):

$(document.body).on("dialogopen", "div.my-dialog-class", function (event, ui) { 
    $(".ui-dialog-titlebar").removeClass("ui-corner-all"); 
    $(".ui-dialog").removeClass("ui-corner-all"); 
}); 
घटना प्रतिनिधिमंडल की इस पद्धति के साथ

, तुम सब करने के लिए अपने open समारोह आवेदन कर रहे हैं संवाद जो कभी भी document.body में जोड़े जाएंगे।

+0

विभिन्न संवाद संपत्ति सेटिंग्स के लिए इस डिफ़ॉल्ट अवधारणा का उपयोग करने के लिए वाक्यविन्यास क्या होगा (क्या मैंने यह सही कहा) भी? मुझे संवाद की एक श्रृंखला मिली है जो सभी 10-12 आम संपत्ति सेटिंग्स और रखरखाव के बारे में साझा करते हैं। प्रति संवाद की अनूठी सेटिंग्स के बारे में चिंता करना अच्छा होगा। – InteXX

+0

ठीक है, समझ गया। बहुत जल्द चले जाओ। मैंने उन्हें आपके खोलने से पहले सामान्य के रूप में जोड़ा: कॉल करें। मैंने संदर्भ के रूप में [यह] (http://stackoverflow.com/questions/5409633/how-to-set-jquery-ui-dialog-defaults) का उपयोग किया। महान काम करता है, धन्यवाद। – InteXX

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