2010-08-01 6 views
22

मैं JQuery में एक नौसिखिया हूँ।

$ के बाद डॉट का उपयोग कब किया जाना चाहिए?

$.trim(str) और $trim(str) नहीं?

और कुछ मामलों के बिना: $(document).ready, लेकिन $.(document).ready नहीं?

धन्यवाद।

+4

संक्षिप्त उत्तर: डॉलर का संकेत आम तौर पर या तो ब्रांड्स, या एक बिंदु और विधि नाम द्वारा पीछा किया जाएगा। बेशक, आपको निश्चित रूप से जावास्क्रिप्ट भाषा सीखने की कोशिश करनी चाहिए ताकि आप समझ सकें कि सभी बिंदुओं और कोष्ठक वास्तव में क्या मतलब है :) – Martin

उत्तर

18

मुझे विश्वास नहीं है कि आपके पास कोई विकल्प है, केवल एक वाक्यविन्यास सही है और वास्तव में काम करेगा। $ प्रतीक jQuery समारोह के लिए एक आशुलिपि संकेतन से ज्यादा कुछ नहीं है, इसलिए जब आप लिखते हैं:

$('some selector') 

आप एक समारोह बुला रहे हैं, jQuery कहा जाता है, और एक स्ट्रिंग में गुजर, या अपने मामले में, आप कर रहे हैं document ऑब्जेक्ट में गुजर रहा है।

जब एक विधि का आह्वान करने की बात आती है, जैसे ट्रिम जैसी सहायक विधि, आपको निम्न वाक्यविन्यास, या तो jQuery.trim() या $.trim() का उपयोग करने की आवश्यकता होगी। यह अपने आप को जांच करने के लिए आसान है, बस इस आजमा कर देखें:

typeof($.trim) //returns "function" 
typeof($trim) //returns "undefined" 
+4

... और ['typeof'] (https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/ऑपरेटर/Special_Operators/typeof_Operator) ऑपरेटर को कोष्ठक की आवश्यकता नहीं है, न ही एक बिंदु। ;-) –

3

आप jQuery के स्थिर विधि है कि कहते हैं की, एक डोम तत्व प्रोटोटाइप में उपलब्ध नहीं है पर पहुंचते हैं। trim एपीआई द्वारा खुलासा एक स्थिर विधि है।

कोई $.fn.trim नहीं है और हम विश्वसनीय रूप से String.prototype.trim पर भरोसा नहीं कर सकते क्योंकि विधियां भिन्न हो सकती हैं।

$trim के बारे में परिभाषित नहीं किया गया है। trim$ का एक तरीका है जो jQuery है। आप या तो $['trim'] या $.trim कर सकते हैं, और यह इसे एक्सेस करने का एकमात्र तरीका होना चाहिए।

19

jQuery में, $ एक चर नाम है, जैसे foo या bar, जो वैश्विक jQuery ऑब्जेक्ट का संदर्भ देता है। यदि आप jQuery ऑब्जेक्ट पर किसी प्रॉपर्टी तक पहुंचना चाहते हैं, तो आप डॉट का उपयोग करें। ये मूलतः एक ही हैं:

$.property 
jQuery.property 

(के बाद से $ किसी अन्य की तरह एक चर रहा है, यह आप अपनी पसंद के कुछ भी करने के लिए सेट के लिए संभव है अगर आप को जोड़ने के बाद Prototype पुस्तकालय शामिल करने के लिए थे हो सकता है। jQuery लाइब्रेरी, जो आपको $document.getElementById फ़ंक्शन के उपनाम पर इंगित करती है।)

jQuery वस्तु भी एक समारोह होने वाला है, तो आपको लगता है कि समारोह में एक ही कॉल कर सकते हैं के रूप में आप किसी भी अन्य समारोह कहेंगे:

$(arguments) 
alert("arguments!") 

दूसरी ओर, $trim सिर्फ एक और वैश्विक चर रहा है, $ या location है, जो हो सकता है की तरह एक समारोह आप अपने आप को परिभाषित:

var $trim = function(arguments) { 
    return "foo"; 
}; 

$trim(str) 
+1

सबसे अच्छा जवाब +1 – CodyBugstein

2

$.foo वाक्य रचना का मतलब है कि $ एक के साथ एक वस्तु के रूप में इलाज किया जा रहा है फ़ील्ड foo कहा जाता है, जो आमतौर पर एक फ़ंक्शन है जिसे आप कॉल कर रहे हैं। तो यह foo नामक एक स्टैंडअलोन फ़ंक्शन के लिए वास्तव में कुछ भी अलग नहीं है - यह किसी भी अन्य फ़ंक्शन से अलग करने और इसे jQuery लाइब्रेरी से संबद्ध करने के लिए $. के साथ बस प्रीफ़िक्स किया गया है।

जब आप $(something).foo का उपयोग करते हैं तो आप jQuery फ़ंक्शन पर something पास कर रहे हैं, और परिणाम आप जो गुजर रहे हैं उस पर निर्भर करता है (मौजूदा ऑब्जेक्ट को ढूंढने के लिए चयनकर्ता हो सकता है, या यह HTML बनाने के लिए स्क्रैप हो सकता है एक नई वस्तु, या यह पेज लोड पर चलाने के लिए पंजीकृत होने वाला एक फ़ंक्शन हो सकता है)। किसी भी मामले में, आप परिणामी लौटे ऑब्जेक्ट पर foo पर कॉल कर रहे हैं, जिसे कई डीओएम ऑब्जेक्ट्स पर लागू किया जा सकता है यदि आपके द्वारा पारित चयनकर्ता वर्ग को पहचानता है, उदाहरण के लिए।

पहला वाक्यविन्यास तब उपयोग किया जाता है जब jQuery फ़ंक्शन DOM ऑब्जेक्ट्स (HTML पृष्ठ के कुछ हिस्सों) के अलावा किसी अन्य चीज़ पर चल रहा है। उदाहरण के लिए, एक स्ट्रिंग ($.trim), या एक सरणी ($.each)। वे पृष्ठ के तत्व नहीं हैं, वे जावास्क्रिप्ट में केवल शुद्ध डेटा हैं।

दूसरा वाक्यविन्यास डीओएम तत्वों पर काम करते समय उपयोग किया जाता है - आप एक jQuery ऑब्जेक्ट बनाने के लिए $(something) का उपयोग करते हैं, जो शून्य या अधिक DOM तत्वों के चारों ओर एक रैपर है। फिर आप लौटे हुए रैपर पर फ़ंक्शंस को आसानी से ऑब्जेक्ट करने के लिए कॉल करते हैं।

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