2011-10-23 11 views
7

काम नहीं करता है मैं जिस परियोजना पर काम कर रहा हूं उस पर jquery वर्दी का उपयोग कर रहा हूं। चूंकि यह व्यवस्थापक पैनल है, मेरे पास वास्तव में दिखाने का विकल्प नहीं है। मैं अपनी समस्या को समझाऊंगाJquery वर्दी अद्यतन

जो मैं करने की कोशिश कर रहा हूं वह काफी सरल है। मैं AJAX के साथ पृष्ठ पर कुछ फॉर्म तत्व (जैसे चयन, चेक बॉक्स, टेक्स्ट इनपुट) जोड़ रहा हूं।

प्रत्येक चीज उन गतिशील रूप से जोड़े गए तत्व तत्वों को फिर से स्टाइल करने के अलावा काम करती है।

function step2() { 
    $.post(siteUrl + "includes/ajax/members/add-subscription.php?do=step2", $("#selectedSubscribers").serialize(), function(data) { 
     $('.step2_content').html(data); 
     $.uniform.update(); 
    }); 
} 

किसी को भी इसी तरह की समस्या का सामना करना पड़ा? यहां तक ​​कि मेरा ऑनक्लिक, ऑन चेंज फ़ंक्शन बिना किसी समस्या के काम कर रहे हैं (गतिशील रूप से जोड़े गए तत्व तत्व), यह केवल $.uniform.update(); काम नहीं कर रहा है।

मैंने सोचा कि प्रसंस्करण डेटा में अधिक समय लग सकता है तो $ .uniform.update(); डेटा संसाधित होने से पहले कहा जाता है इसलिए मैंने async: false के साथ कोई किस्मत के साथ कोशिश की।

मुझे खुशी होगी अगर कोई ऐसी समस्या का अनुभव करता है या जो समाधान जानता है, तो मुझे इस समस्या से बाहर निकलने में मदद मिल सकती है।

अग्रिम धन्यवाद।

उत्तर

14

जब $.uniform() पहले कहा जाता है, तो यह सभी निर्दिष्ट तत्वों को प्रभावित तत्वों की आंतरिक सरणी में एकत्र करता है। जब आप $.uniform.update() पर कॉल करते हैं तो यह उन तत्वों को बस स्टाइल करता है जो पहले ही एकत्र किए गए थे।

अतिरिक्त तत्व जोड़ने के लिए, आपको केवल $.uniform() पर कॉल करने की आवश्यकता हो सकती है, केवल उन नए, गतिशील रूप से जोड़े गए तत्वों की पहचान करने वाले चयनकर्ता को पास करना होगा।

+0

आपके तेज़ उत्तर के लिए धन्यवाद। दुर्भाग्य से काम नहीं किया। – Revenant

+3

कोई विचार नहीं, लेकिन यह $ ("चयन, इनपुट: चेकबॉक्स, इनपुट: रेडियो, इनपुट: फ़ाइल") काम किया। वर्दी(); $ .uniform.update(); बिना .update() अभी भी काम नहीं करता है और मुझे यह नहीं मिला कि मुझे वर्दी में तत्व जोड़ने के बाद .update() का उपयोग क्यों करना है। – Revenant

+0

$ .uniform.update(); मेरे लिए काम किया :) धन्यवाद –

5

लोड के लिए() करता है, तो ठीक promblem

$('#dialog').load(url + ' #forload', function() {$('#dialog').find('select').uniform(), $('#dialog').find('input:checkbox').uniform()}) 
+0

धन्यवाद - मुझे .load() का उपयोग करने के बाद एक चुनिंदा तत्व शैली के लिए वर्दी प्राप्त करने में समस्या हो रही थी और यह पूरी तरह से मेरे लिए तय किया गया। – MikeH

1

एक अन्य समाधान इस

setTimeout("$('.uniform_element').uniform();",200); 

200 हो सकता है या एक उच्च संख्या पड़ सकता है।

+0

यह समाधान वास्तव में वर्दी पढ़ने और [प्रासंगिक समस्या # 270] (https://github.com/pixelmatrix/uniform/issues/270) –

+0

पर वास्तव में अनुशंसित किया गया है यह समाधान वास्तव में काम करता है। मेरे मामले में चेकबॉक्स नीचे ड्रॉप के अंदर थे – Prasanth

1

क्या आपने यह कोशिश की?

$.uniform.update("#select_element_id"); 

मेरे मामले में, यह समस्या हल हो गई।

पुराने संस्करण वर्दी में आपके जैसी समस्या हो सकती है।

0

इस $ ('। ElementClass') का उपयोग करें। वर्दी();

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