2010-11-10 12 views
23

मैं कस्टम के उपयोग के बारे में सोच रहा हूँ Jquery में विशेषताओं का वर्ग या आईडी गुणों का उपयोग कर, एचटीएमएल डिजाइनरों के साथ हस्तक्षेप नहीं करने के लिए से बचने के लिए जिम्मेदार बताते हैं।Jquery कस्टम

<ul Jquery="CommonUl"> 
    <li Jquery="CommonLi"></li>  
    <li Jquery="CommonLi"></li> 
    <li Jquery="CommonLi"></li> 
    <li Jquery="CommonLi"></li> 
    <li Jquery="CommonLi"></li> 
</ul> 
  • क्या आपको लगता है कि यह एक अच्छा तरीका है:

    खाते में इस विचार को लेते हुए एचटीएमएल की तरह टुकड़े होना चाहिए?

  • इन अनुकूलित विशेषताओं की W3C सत्यापन के बारे में आपकी राय क्या है?

  • आप किसी भी तरह से एचटीएमएल डिजाइनरों के काम में हस्तक्षेप किए बिना jQuery के साथ कार्यक्रम को जानते हो?

  • प्रदर्शन के बारे में, मुझे लगता है कि वर्ग विशेषताओं या आईडी के साथ jquery चयनकर्ता कस्टम विशेषता का उपयोग करने और "शामिल, आदि ..." जैसे फ़िल्टरिंग फ़ंक्शंस का उपयोग करने से तेज़ होते हैं। क्या यह सही है?

+2

इस के लिए W3C सत्यापन के बारे में मेरे विचार यह है कि है असफल हो जायेगी। :) क्या आप jQuery के '.ata()' से परिचित हैं? (यदि आपको सीधे मार्कअप में डेटा स्टोर करने की आवश्यकता है तो यह मदद नहीं करेगा) –

+2

वास्तव में @Pekka यह jQuery 1.4.3 के साथ होगा! '.data (" foo ") पर एक कॉल 'तत्व पर' डेटा-foo =" मान "' का मान उठाएगा। – Pointy

+1

@ पॉइंट हाँ, लेकिन 'डेटा- *' HTML 4 में मान्य नहीं है ... –

उत्तर

81

आप ऐसा करते हैं, data- attributes हालांकि (part of the HTML5 specification) का उपयोग कर सकते, इस तरह:

<li data-something="CommonLi"></li> 

jQuery भी 1.4.3+ में अंतर्निहित इन के लिए समर्थन, उदाहरण के लिए:

$("li").data("something") //"CommonLi" 

अपने अन्य प्रश्नों के लिए:

  • वे मान्य जाएगा कि उसे एचटीएमएल 5 है - लेकिन HTML4 में नहीं तोड़ कुछ भी
  • यह डिजाइनर के साथ हस्तक्षेप नहीं करना चाहिए, लेकिन यह जो डिजाइनर
  • यदि आप पर निर्भर करता हूँ एक तत्व से प्राप्त करने में कठिनाई, प्रदर्शन किसी अन्य विशेषता
+0

हालांकि यह HTML 4 में अमान्य होगा, इसलिए यदि पुराने ब्राउज़र का समर्थन करना और W3C मान्य होना महत्वपूर्ण है तो यह दुख की बात नहीं है। यदि यह एक समस्या नहीं है, यह जाने के लिए –

+1

@Pekka सबसे अच्छा तरीका है - मैं इस बात से सहमत है, लेकिन 100% मान्य किया जा रहा है 100% कार्यात्मक जा रहा है ... अगर कोई कल्पना में एक अंतराल नहीं था के रूप में के रूप में महत्वपूर्ण नहीं है, जहां इन की आवश्यकता थी, वे HTML5 में शामिल नहीं किए गए थे :) एचटीएमएल 5 DOCTYPE को ऊपर उठाने के लिए दोनों तरफ का ख्याल रखना चाहिए। –

+0

हाय, अग्रिम धन्यवाद ... महान प्रतिक्रिया। बात यह है कि शायद हम एचटीएमएल 5 का उपयोग नहीं करेंगे, स्पष्ट रूप से 2012 तक समाप्त नहीं होंगे। – Jose3d

1

मैं व्यक्तिगत रूप से आप प्रत्येक तत्व के साथ डेटा को बचाने के लिए jQuery निर्मित विधि का उपयोग करने के लिए सिफारिश करेंगे के समान है। निम्नलिखित बचत डेटा के लिए कोड का टुकड़ा है:

$("ul").data("CommonUl"); 
$("li").data("CommonLi"); 
+0

सबसे पहले, धन्यवाद ... मैं स्टोर डेटा foreach तत्व के इस तरह से नहीं जानता था। बात यह है कि शायद मुझे कुछ ऐसा कहने की आवश्यकता नहीं होगी: "सभी उल और ली के पास निम्नलिखित डेटा संलग्न होगा", इसके बजाय कुछ विशिष्ट तत्व होंगे (शायद पृष्ठ में 4 उल है, और मैं आवेदन करना चाहूंगा यह एक के लिए और स्थिति से नहीं) ... सर्वश्रेष्ठ सादर। – Jose3d

8

अगर आपके पास कई विशेषता है करने के लिए मैं, उदाहरण के लिए एक अनूठा namespaced विशेषता निर्धारित करने का सुझाव योजना बना रहे हैं

<li data-yourapp>...</li> 

और इस तरह से आप तत्व पहुंच कम हो जाएगा और आप सभी कस्टम डेटा पुनः प्राप्त होगा में एक hashtable

$("li").data("yourapp", { 
    points : 2000, 
    life : 1, 
    weapons : { 
     firegun : 0, 
     missiles : 12 
    } 
}); 

की तरह है कि विशेषता का उपयोग एक बार

+0

अच्छा ... पता नहीं था कि आप यह कर सकते हैं। – Adam

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