मैंने सोचा था कि jQuery विजेट jQuery ऑब्जेक्ट्स थे जो आसानी से डीओएम ऑब्जेक्ट्स से जुड़े हुए थे (इसलिए आप राज्य को स्टोर कर सकते हैं, उदाहरण के लिए, या घटनाओं को संभाल सकते हैं), लेकिन मुझे यहां इंस्टेंस मॉडल को समझने में कुछ समस्या हो रही है। मेरे पास एक वस्तु है;

var xs_widgets = {

    jQuery : $,

    options: { },

    _create: function () {
        this.make_sortable() ;
    },

    _init: function () { alert ( 'init' ) ; }

    make_sortable: function () { alert ( 'make-sortable' ) ; }
}

मैं इसे jQuery से बांधता हूं;

jQuery.widget( "ui.xs_widgets", xs_widgets );

और फिर, मैं कुछ DOM तत्वों को विजेट में बाँधने का प्रयास करता हूँ;

$('li.widget').xs_widgets();

अब ये रही बात। मैंने सोचा कि प्रत्येक <li class="widget"> को एक jQuery ऑब्जेक्ट संलग्न किया गया है, लेकिन जो मैं इकट्ठा कर सकता हूं उसमें एक वैश्विक xs_widget ऑब्जेक्ट है, और यह ऊपर की क्वेरी से jQuery ऑब्जेक्ट्स को खिलाया जाता है, और आप स्वयं उदाहरण डेटा से निपटना है? मैंने सोचा कि विगेट्स का पूरा बिंदु उदाहरणों से निपटने के ऊपरी हिस्से से बचने के लिए था? उपरोक्त कोड HTML के विरुद्ध चलता है, जिसमें दो <li> तत्व शामिल हैं;

make-sortable
init
make-sortable
init

मैं उम्मीद कर रहा था ;

make-sortable
init
init

ओह, कृपया मदद करें! मैं ट्यूटोरियल और लेख पढ़ रहा हूं, लेकिन मुझे लगता है कि कहीं न कहीं मुझे कुछ महत्वपूर्ण याद आ रहा है।

1
AlexanderJohannesen 20 जुलाई 2011, 04:06

1 उत्तर

सबसे बढ़िया उत्तर

आपके चयनकर्ता में प्रत्येक मिलान तत्व के लिए आपके xs_widgets फ़ंक्शन विजेट को एक बार कॉल किया जाता है (इसलिए, दो टैग के साथ दो बार)।

मैंने सोचा कि प्रत्येक को एक jQuery ऑब्जेक्ट संलग्न है।

वे करते हैं। यही कारण है कि _create और _init दोनों को दो बार बुलाया जाता है। हालांकि, तत्व में विजेट जोड़ते समय निर्माण विधि को केवल एक बार बुलाया जाएगा। अगर आप अपनी पहली कॉल के ठीक बाद $('li.widget').xs_widgets(); को फिर से कॉल करते हैं, तो आपको केवल:

init
इस में

यहाँ एक उदाहरण है।

2
scottm 20 जुलाई 2011, 04:43
धन्यवाद, हाँ, कुछ और परीक्षणों के बाद ऐसा लगता है कि मैं उलझन में हूं कि इन कक्षाओं के अंदर अज्ञात कार्य कैसे काम करते हैं। किसी को लगता है कि अज्ञात कार्यों में स्वयं विजेट ऑब्जेक्ट का संदर्भ रखने के लिए एक तंत्र था ताकि घटनाएं ठीक से काम कर सकें? ऐसा लगता है कि मुझे एक अच्छा संदर्भ प्राप्त करने के लिए उनके अंदर प्रश्न पूछने की ज़रूरत है? या क्या कोई और जादू है जो मैंने याद किया है?
 – 
AlexanderJohannesen
20 जुलाई 2011, 06:11