यह हमेशा मुझे मिलता है। किसी वेब पेज पर सभी प्यारे यूआई तत्वों को शुरू करने के बाद, मैं कुछ सामग्री लोड करता हूं (या तो एक मॉडल या टैब में उदाहरण के लिए) और नई लोड की गई सामग्री में UI तत्व प्रारंभ नहीं होते हैं। उदाहरण के लिए:,AJAX लोड के बाद jQuery-style UI इंटरफ़ेस को फिर से बाध्य करने के लिए पसंदीदा पैटर्न क्या है?
var uiRegistry = {
registry: [],
push: function (func) { this.registry.push(func) },
apply: function (scope) {
$.each(uiRegistry.registry, function (i, func) {
func(scope);
});
}
};
uiRegistry.push(function (scope) {
$('a.button', scope).button();
$('select', scope).chosen();
});
uiRegistry.apply('body'); // content gets styled as per usual
$('#content').load('/uri', function() {
uiRegistry.apply($(this)); // content gets styled :)
});
मैं इस समस्या के साथ केवल एक ही व्यक्ति नहीं हो सकता इसलिए किसी भी बेहतर पैटर्न देखते हैं:
$('a.button').button(); // jquery ui button as an example
$('select').chosen(); // chosen ui as another example
$('#content').load('/uri'); // content is not styled :(
मेरे वर्तमान दृष्टिकोण तत्वों की एक रजिस्ट्री कि बंधन की जरूरत बनाने के लिए है ऐसा करने के लिए?
आपकी विधि कम से कम बेहतर दिखती है, यह केवल नए तत्वों को लक्षित करती है जो अच्छी है। हालांकि, मैंने संपत्ति नाम के रूप में "लागू" नहीं किया होता, हालांकि यह भ्रमित हो सकता है। –
सहमत हैं, आपका एक अच्छा तरीका है। जब jQuery 'मोबाइल' कंटेनर तत्व पर ट्रिगर होता है तो यह बहुत अधिक है, सिवाय इसके कि यह तत्वों से मेल खाने के लिए कक्षाओं के बजाय 'डेटा-' विशेषताओं का उपयोग करता है और उन्हें बढ़ाने के लिए उपयोग करने के लिए विजेट निर्धारित करता है। –
धन्यवाद। मैं यह देखने के लिए jQuery मोबाइल कोड देखूँगा कि वे वहां कुछ दिलचस्प कर रहे हैं या नहीं। – stephenfrank