2010-07-20 14 views
16

इन दोनों के बीच क्या अंतर है?

$('#SPANID').html("Some Text"); 

jQuery('#SPANID').html("Some Text"); 

क्या यह कुछ प्रोटोटाइप बनाम jQuery है?

उत्तर

25

वे दोनों एक ही काम करते हैं। अधिकांश पुस्तकालय पुस्तकालयों के भीतर कार्यों तक पहुंचने के लिए एक छोटे से तरीके के रूप में $ का उपयोग करते हैं।

jQuery अपने पुस्तकालय तक पहुँचने के कई तरीके है: यदि आप एक से अधिक पुस्तकालय उपयोग कर रहे थे

window.jQuery('#SPANID').html("Some Text"); 

window.$('#SPANID').html("Some Text"); 

jQuery('#SPANID').html("Some Text"); 

$('#SPANID').html("Some Text"); 

jQuery या window.jQuery बजाय $ के लिए इस्तेमाल किया जा सकता है।

JQuery में jQuery.noConflict(); नामक एक फ़ंक्शन है जो jQuery के $ 0.00 के साथ काम नहीं कर रहे jQuery चर के नियंत्रण को छोड़ देता है।

यह एक से अधिक लाइब्रेरी का उपयोग करने के लिए अच्छा होगा जो $ का उपयोग करते हैं।

तो जब आप jQuery का उपयोग करते हैं तो आप प्रोटोटाइप का उपयोग करते समय jQuery('#message').addClassName('read'); और $('#message').addClassName('read'); करेंगे।

(यह अगले बिट एक छोटे से बंद विषय है, लेकिन आप $ कई पुस्तकालयों के साथ उपयोग करना चाहते हैं में मदद मिलेगी) यद्यपि एक ही समय में $ विभिन्न पुस्तकालयों पर उपयोग करने के लिए एक रास्ता है, अनाम फ़ंक्शन का उपयोग

। जैसे इतना:

(function($){ 


})(jQuery); 


(function($){ 


})(Prototype); 
कार्यों का

प्रत्येक, पुस्तकालय वस्तु गुजरता है तो jQuery और प्रोटोटाइप, चर $ उपयोग अनेक पुस्तकालयों के साथ इसका इस्तेमाल करने की अनुमति देना। यदि आप प्रत्येक पुस्तकालय के लिए प्रत्येक कोड के भीतर अपना कोड रखते हैं तो यह काम करेगा।

उदाहरण के लिए:

(function($){ 
    $(document).ready(function(){ 

     $('#message').addClass('read'); 

    }); 

})(jQuery); 


(function($){ 
    document.observe("dom:loaded", function() { 

     $('message').addClassName('read'); 
     //Or 
     $$('#message').addClassName('read'); 

    }); 

})(Prototype); 
+1

+1 यदि यह थोड़ा सा विषय है तो यह एक अच्छा पूर्ण जवाब है :) – Patricia

+1

@Tomgrohl, आपके इनपुट के लिए धन्यवाद। अब समझना वाकई आसान है। – shailesh

+0

@ पेट्रीसिया ट्रू। मैंने इसे दूसरे दिन सीखा और इसे उल्लेख करने लायक माना :) –

16

यदि आप अधिक उपयोग कर रहे हैं तो एक जावास्क्रिप्ट लाइब्रेरी हो सकती है यदि आप $ का उपयोग करते हैं तो संघर्ष हो सकते हैं। का उपयोग कर jQuery उनसे बच जाएगा।

+5

यह सही उत्तर है। इसके अलावा, jQuery में कोई कॉनफ्लिक्ट() विधि है जिसे $ चर के jQuery के नियंत्रण को छोड़ने के लिए बुलाया जा सकता है, जिससे यह अन्य ढांचे के साथ सैंडबॉक्स में अच्छी तरह से खेलने की इजाजत देता है। http://api.jquery.com/jQuery.noConflict/ – twerq

+3

यदि आप भी उपयोग करते हैं तो यह केवल सही जवाब है .noConflict। – EndangeredMassa

+0

"एक से अधिक जावास्क्रिप्ट लाइब्रेरी का उपयोग करके" आपका क्या मतलब है? क्या इसका मतलब है जावास्क्रिप्ट प्लग-इन से अधिक का उपयोग करना? क्या आप कृपया मुझे एक उदाहरण दे सकते हैं जहां बुनियादी बातों की अच्छी समझ रखने के लिए यह संघर्ष हो सकता है? – shailesh

3

कोई अंतर वास्तव में, इस तथ्य के अलावा कि jQuery('SPANID') वास्तव में होना चाहिए jQuery('#SPANID')

$ बस jQuery

संपादित करने के लिए एक आशुलिपि है: मैं समझता हूँ कि $ और jQuery के बीच वास्तविक अंतर संभव नाम स्थान में है अन्य पुस्तकालयों के साथ टकराव। इसके अलावा, वे वैसे ही काम करते हैं।

+2

कोई फर्क नहीं पड़ता? आप इस बारे में निश्चित हैं? – RightSaidFred

+0

एक टाइपो था। यह jQuery होना चाहिए ('# स्पैनिड') – shailesh

+0

'$' 'jQuery' का उपनाम है, इसलिए यह बिल्कुल वही व्यवहार करता है ... '$' को छोड़कर नामस्थान टकराव का उच्च जोखिम होता है (अन्य जेएस पुस्तकालयों के साथ)। – kingjeffrey

1

स्पष्ट "jQuery" का उपयोग करना एक संघर्ष से बचने होगा यदि आप भी एक और पुस्तकालय जो "$"

6

यह एक ही बात के लिए एक उपनाम है इस्तेमाल किया संदर्भ के लिए हुआ है। यदि आप $ प्रतीक का उपयोग करने वाले अन्य पुस्तकालयों के समान पृष्ठ पर jQuery का उपयोग करना चाहते हैं, तो आप .noConflict() विकल्प के साथ jQuery का उपयोग कर सकते हैं। यह आपको अन्य लाइब्रेरी के लिए $ और jQuery लाइब्रेरी के लिए jQuery का उपयोग करने की अनुमति देगा।

0

अंतर यह है: $ अक्सर अन्य पुस्तकालयों या जावास्क्रिप्ट संरचनाओं द्वारा उपयोग किया जाता है, इसलिए इसे ओवरराइट किया जा सकता है और आप जो भी उम्मीद कर सकते हैं वह नहीं कर सकते हैं। jQuery हमेशा jQuery लाइब्रेरी को संदर्भित करता है, इसलिए यह वही करेगा जो आप उम्मीद करते हैं।

वातावरण जहां आप गारंटी नहीं दे सकते कि $ कुछ और, jQuery या jQuery.noConflict() का उपयोग करके ओवरराइट नहीं किया जाएगा $ अधिक सुरक्षित है।

0

जब आप एक और लाइब्रेरी प्राप्त कर चुके हैं तो jQuery का उपयोग करें जो पहले ही परिभाषित है $$ सुविधाजनक आशुलिपि यह है आप इसके बारे में चिंता करने की ज़रूरत नहीं है, जहां जब आप नहीं (या समारोह स्कोप के अंदर कर के रूप में प्रयोग करें। :)

हालांकि व्यक्तिगत रूप से, मुझे लगता है कि jq एक अच्छा आशुलिपि होगा (एक ही नंबर कीस्ट्रोक की $, शायद थोड़ा सा आम)।

0

यह सिर्फ छोटा हाथ नहीं है, लेकिन यह अन्य जावास्क्रिप्ट पुस्तकालयों के लिए बनाया गया है जो $ चरित्र का उपयोग कर रहे हैं और भ्रम या संघर्ष से बचने के लिए jquery कीवर्ड का उपयोग करना पसंद किया जाता है।

0

अधिक जानकारी यहां हैं: http://api.jquery.com/ready/

$ jQuery के लिए एक उपनाम है जो (jQuery) एक जावास्क्रिप्ट पुस्तकालय है। प्लग-इन लाइब्रेरी का उपयोग एक विशिष्ट फैशन में करते हैं जो पुस्तकालय के विशिष्ट उपयोग को बनाते हैं और इसकी कार्यक्षमता बढ़ाते हैं।

उपयोग के कुछ उदाहरण:

"नियमित" jQuery कोड:

$(function(){ 
     // my jquery code here 
    }); 

नोट: इस, एक इवेंट मैनेजमेंट जो कहने के लिए है यह डोम तैयार घटना पर निष्पादित करता है।

प्लग-इन कोड:

(function($){ 
    //theplugin code here 
})(jQuery); 

यह अंदर भ्रम के बिना $ के उपयोग की अनुमति देता है, क्योंकि यह कहते हैं, "$ समारोह में पारित करने के लिए jQuery आवंटित ($)


$(function(){ 
    //stuff here such as jQuery code 
}); 

$(function(){ 
    $("#mybutton").click(function() { 
    alert("hi");) 
)}; 
}); 

में के रूप में है, जो केवल खेलने में आता है अगर आप अन्य पुस्तकालयों कि $ का उपयोग का उपयोग करें (अंत में बाध्यकारी (jQuery के बिना))

(function($) { 
    $(document).ready(function() { 
    $("#mybutton").click(function() { 
     alert("hi"); 
    )}; 
    }) 
})(jQuery) 

लेकिन शायद के रूप में अच्छा नहीं: के समान है।


$ सिर्फ एक चरित्र है, इस प्रकार आप जैसे चर हो सकता है:

myvariable = 0; $ myvariable = 0; मेरा $ चर = 0;

यहां कुछ खास नहीं है, बस एक और चरित्र का उपयोग करें।

मैं ऐसा इसलिए होता हूं कि $ का एक सामान्य उपयोग $ = jQuery है; अन्य पुस्तकालय इस चरित्र को एक सामान्य शॉर्टेंड (उर्फ प्रकार) के रूप में भी उपयोग करते हैं, इस प्रकार नॉकफ्लिक्ट और पूर्ण नाम (jQuery) का उपयोग करते हैं।

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