से प्रस्तुत नहीं हो डेटा- *, सीएसएस विशेषता चयनकर्ता गुण में परिवर्तन को देख नहीं देखते हुए इस सीएसएस:ब्राउज़र
[data-myplugin-object="blue-window"]{
background-color: #00f;
}
[data-myplugin-object="red-window"]{
background-color: #f00;
}
और यह jQuery:
$('[data-myplugin-object="blue-window"]').each(function(event){
$(this).data({
'myplugin-object': 'red-window'
});
});
और इस HTML स्निपेट:
<div data-myplugin-object="blue-window">
<p>Hello world</p>
</div>
अब, कोई उम्मीद करेगा कि जब jQuery स्निपेट निष्पादित किया जाता है (ठीक से स्थगित पृष्ठ लोड पाठ्यक्रम से भरा हुआ है) मेरी नीली खिड़की (जो प्रारंभ में नीली के रूप में प्रस्तुत करती है) लाल हो जाएगी।
नहीं, यह निश्चित रूप से नहीं करता है; और क्रमशः फ़ायरफ़ॉक्स और क्रोम में फ़ायरबग और डेवलपर टूल्स का उपयोग करके, मैं data-*
विशेषताओं में कोई भी परिवर्तन नहीं देख सकता।
ब्राउज़र (और उस बात के के लिए डोम toolboxes) परिवर्तन का पालन करने के लिए आदेश में, मैं .attr()
पर वापस लौटना होगा या इसके लिए एक समाधान है?
धन्यवाद @ jfriend00 - लेकिन मैं एक पर काम कर रहा हूँ सीएसएस वर्गों जाहिर है, विशेष रूप से तत्वों स्टाइल के मामले के लिए और अधिक फिटिंग कर रहे हैं प्लगइन और कस्टम विशेषताओं (* लेआउट * के लिए प्रासंगिकता) की अर्थपूर्ण प्रासंगिकता के आधार पर कुछ डिफ़ॉल्ट शैलियों को कार्यान्वित करना चाहता था। इन पाठ्यक्रमों का उद्देश्य उच्च विशिष्टता (* जैसे 'classes' *) के सीएसएस चयनकर्ताओं के साथ ओवरराइड किया जाना है। मामला, यदि '.attr()' विधि मेरी सबसे अच्छी शर्त है, तो वह दिशा है जो मैं जाऊंगा। क्या '.data()' कोई अन्य अंतर्निहित कार्यक्षमता प्रदान करता है जो इस परिवर्तन के साथ खो सकता है? (* मानचित्रों का समर्थन करने के अलावा, आदि *) – Dan
सरल स्ट्रिंग्स (उदा। ऑब्जेक्ट रेफरेंस) के अलावा अन्य चीजों का उपयोग करते समय '.data()' के लिए मुझे पता है कि मुख्य अतिरिक्तता कार्यक्षमता मेमोरी लिंक से संबंधित है। न केवल यह परिपत्र डीओएम संदर्भों को रोकता है, बल्कि यह सुनिश्चित करता है कि यदि आप jQuery के माध्यम से DOM ऑब्जेक्ट को हटाते हैं तो किसी भी चीज को '.data()' के माध्यम से संदर्भित किया जाता है। यदि आप केवल तारों का उपयोग कर रहे हैं, तो मुझे नहीं लगता कि यह आपके लिए बहुत अधिक कार्यक्षमता प्रदान करता है। यदि आप इसे बहुत कुछ कर रहे हैं, तो आप एक डीओएम विशेषता बनाम jQuery तरीके के प्रदर्शन और स्मृति उपयोग को देखना चाहेंगे। – jfriend00