2011-09-30 9 views
6

क्या मैं किसी अन्य तत्व पर डोम तत्व (या एक jQuery तत्व) को संग्रहीत करने के लिए डेटा() फ़ंक्शन का उपयोग कर सकता हूं? (नीचे कोड देखें)jQuery में, क्या मैं तेजी से पुनर्प्राप्ति के लिए .data() का उपयोग कर तत्वों को संग्रहीत कर सकता हूं?

क्या यह इसे मूल्य या संदर्भ द्वारा संग्रहीत करता है? क्या यह अच्छा अभ्यास है?

मैं जल्दी और आसानी से गुलाम तत्व को खोजने के लिए सक्षम होना चाहते हैं एक मास्टर तत्व की (नीचे दिए गए कोड को देखें), तो जैसे:

$slave = $('.some .path .to .slave'); 
$master = $('.some .path .to .master');  
$master.data('slave', $slave);  
$master.click(function(){ $(this).data('slave').toggle() }); 

(स्पष्ट रूप से कोड बेवकूफ है, लेकिन मैं वास्तव में हूँ । स्वामी और गुलाम तत्वों की अधिकता के माध्यम से पाशन)

उत्तर

3

आप जो कुछ भी चाहते हैं उसे स्टोर कर सकते हैं, चाहे आपको चाहिए या नहीं।

जेएस चर वस्तुओं के संदर्भ हैं, नहीं? (यह केवल आंशिक रूप से उदारवादी है – एक संदर्भ के अलावा कोई अन्य डोम क्वेरी क्या लौटाएगी? एक गहरी प्रतिलिपि?)

+0

मुझे लगता है कि न तो एक संदर्भ और न ही डीओएम की गहरी प्रतिलिपि, लेकिन एक jQuery ऑब्जेक्ट जिसमें सामान का एक गुच्छा है और शायद डीओएम ऑब्जेक्ट्स के कुछ संदर्भ हैं। – david

+0

(एक वैरिएबल क्या है जो किसी संदर्भ में jQuery ऑब्जेक्ट का संदर्भ नहीं देता है?) –

+0

हाँ, लेकिन किसी ऑब्जेक्ट का संदर्भ रखने से पूरे jquery ऑब्जेक्ट को दायरे में रखा जाएगा? यह सिर्फ एक डोम नोड का संदर्भ नहीं है जो पहले से मौजूद होगा, मुझे लगता है। – david

0

मैं जानता हूँ कि आप यह कर सकते हैं:

var slavePath=$('.some .path .to .slave'); 
var master=$('.some .path .to .master').data('slave', slavePath); 
master.click(function(){ $($this.data('slave')).toggle()}); 

बस दास, न कि पूरी वस्तु को चयनकर्ता की दुकान।

+0

आपको शायद आपके कोड में कोई त्रुटि मिली है, दासपाथ में आपके मामले में तत्वों की एक सूची है। – Weboide

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

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