की Iife में समझ $ बनाम jQuery मैं अगर वहाँ के बीच कोई अंतर है समझने की कोशिश कर रहा हूँ। यह ठीक है? क्या यह कहीं भी उपयोग नहीं किया जाता है क्योंकि यह काम नहीं कर सकता है? यह काम करता है लेकिन शायद यह गैर मानक है? क्या कोई इसे समझ सकता है अगर यह एक त्रुटि है या यह ठीक है? धन्यवाद
बजाय $
उत्तर
अन्य जावास्क्रिप्ट ढांचे को शॉर्टकट के रूप में भी $ का उपयोग कर सकते हैं। यह गारंटी करने के लिए कि $ आपके फ़ंक्शन के अंदर jQuery है, अंत में jQuery पास करें और $ $ नहीं। फ़ंक्शन या "कोड एरिया" को परिभाषित करने का यह तरीका यह सुनिश्चित करना है कि फ्रेमवर्क मिश्रण करते समय $ वास्तव में jQuery है।
वहाँ है।
$
jQuery के लिए सिर्फ शॉर्टकट है। यह lib को परिभाषित नहीं करता है, इसलिए इसका उपयोग अन्य ढांचे द्वारा भी किया जा सकता है।
को ध्यान में यह मामला लें:
// remove the jQuery shortcut ($ === undefined)
var j = jQuery.noConflict();
// redefine the dollar sign
window.$ = function(){
// some other plugin
}
// case A
(function($){
alert(jQuery === $);//true
})(jQuery)
// case B
(function($){
alert(jQuery === $);//false
})($)
आपका दूसरे उदाहरण अनावश्यक है। आप उपयोग कर $
तो $
पहले से ही jQuery है jQuery पारित कर सकते हैं, तो यानी आप सिर्फ किया जा सकता था लिखा है:
(function(){
$('#selectme');
})();
पहला उदाहरण है, केवल सार्थक आप noConflict मोड में jQuery उपयोग करना चाहते हैं है, लेकिन अभी भी $
करने के लिए उपयोग कोड के चयन टुकड़ों में संदर्भ jQuery। अन्यथा, आपको तकनीकी रूप से बंद होने की भी आवश्यकता नहीं है (हालांकि कई अन्य कारणों से बंद होने का अच्छा अभ्यास है)।
उदाहरण अनावश्यक नहीं है। ऐसे कुछ मामले हो सकते हैं जहां आपको वैश्विक दायरे पर भरोसा नहीं करना चाहिए और वांछित चर को आपके फ़ंक्शन स्कोप में रखना बेहतर होगा। इस उदाहरण पर विचार करें: '(फ़ंक्शन() {setTimeout (फ़ंक्शन() {अलर्ट ($ === jQuery);}, 1000);})(); $ = 13;' और फिर '(फ़ंक्शन ($) {setTimeout (function() {चेतावनी ($ === jQuery);}, 1000);}) ($); $ = 13; '। आप देख सकते हैं कि दूसरा उदाहरण वांछित परिणाम –
कई जावास्क्रिप्ट पुस्तकालय एक फ़ंक्शन या चर नाम के रूप में $ का उपयोग करते हैं, जैसे कि jQuery करता है। JQuery के मामले में, $ jQuery के लिए सिर्फ एक उपनाम है, इसलिए सभी कार्यक्षमता $ का उपयोग किए बिना उपलब्ध है।
http://api.jquery.com/jQuery.noConflict/
में "नो-confict" मोड,: हम jQuery के साथ-साथ एक और JavaScript लाइब्रेरी का उपयोग करने की जरूरत है, हम $ के नियंत्रण वापस अन्य पुस्तकालय के लिए $ .noConflict() के लिए एक कॉल के साथ लौट सकते हैं $ शॉर्टकट उपलब्ध नहीं है और लंबे jQuery का उपयोग किया जाता है। उदाहरण के लिए:
$(document).ready(function(){
$(#somefunction) ...
});
बन जाता है:
jQuery(document).ready(function(){
jQuery(#somefunction) ...
});
आदेश $ के डिफ़ॉल्ट jQuery शॉर्टकट का उपयोग करने, आप अपने कोड के संबंध में निम्न आवरण का उपयोग कर सकते हैं:
jQuery(document).ready(function($) {
// $() will work as an alias for jQuery() inside of this function
});
कि आवरण होगा पेज लोड होने पर आपका कोड निष्पादित होने का कारण बनता है, और $ jQuery को कॉल करने के लिए काम करेगा।
(function($) {
// $() will work as an alias for jQuery() inside of this function
})(jQuery);
अच्छा पढ़ा:http://codex.wordpress.org/Function_Reference/wp_enqueue_script#jQuery_noConflict_wrappers
यदि किसी कारण के लिए, आप अपने कोड (बजाय डोम तैयार घटना के लिए इंतजार कर के) तुरंत अमल करने के लिए चाहते हैं, तो आप के बजाय इस आवरण विधि का उपयोग कर सकते हैं इसके अलावा आप अगर उत्सुक:
यह आपके प्यास बुझाने के लिए मदद करनी चाहिए :)
उम्मीद है कि यह मदद करता है!
देता है आपको 'दस्तावेज़' और' .ready() 'का उपयोग करने की आवश्यकता नहीं है' मेरा पसंदीदा है: 'jQuery ($ => {/ * कोड * /})' – Endless
- 1. (। *) के बजाय (। *?)
- 2. बजाय सी
- 3. बजाय इस
- 4. बजाय R.id
- 5. टेक्स्ट को टेक्स्ट जोड़ने के बजाय इसे बदलने के बजाय
- 6. बजाय वीबीस्क्रिप्ट के बजाय पावरहेल चलाने के क्या फायदे हैं?
- 7. बजाय बराबर होती है
- 8. बजाय crontab -e
- 9. -isystem बजाय CMake
- 10. डेटटाइम की बजाय तिथि?
- 11. बजाय जबकि पाश
- 12. बजाय एक सूचकांक मैदान
- 13. Backbone.save पोस्ट के बजाय PUT
- 14. संबंधपरक बीजगणित के बजाय एसक्यूएल
- 15. <? के बजाय php <?
- 16. C++ के बजाय कदम प्रतिलिपि
- 17. शोकहारा सेवा WADL बजाय डबल्यूएसडीएल
- 18. CMake/बजाय मीट्रिक टन/एमडी
- 19. ट्रिगर के बजाय इकाई फ्रेमवर्क
- 20. स्थानीय होस्ट जीमेल के बजाय
- 21. छेड़छाड़ की बजाय टूलस्ट्रिपस्टैटस लेबल
- 22. फ्लोट के बजाय फ्लोटबफर क्यों []?
- 23. उपयोग: के बजाय tjump: Ctrl-]
- 24. SCons या CMake बजाय qmake
- 25. Cocos2D - कण बजाय स्थिति वे
- 26. कीबोर्ड की बजाय आईफोन डेटपिकर?
- 27. रिलीज के बजाय एनडीईबीयूजी क्यों?
- 28. jQuery.ajax रिटर्न jsonp बजाय json
- 29. Zend_Db_Table साहचर्य इसके बजाय वस्तु
- 30. यह LINQ समूहिंग के बजाय 2 की बजाय 3 की गणना क्यों है?
कृपया अर्धविराम ';' के साथ अपना बयान समाप्त करें। अन्यथा, आप परेशानी में भाग लेंगे: '(...) (...) (...) (...)'। –
पहला कोड का वास्तविक बिंदु jQuery में [noConflict mode] (http://api.jquery.com/jQuery.noConflict/) में फ़ंक्शन के अंदर jQuery संदर्भित करने के लिए '$' का उपयोग करने में सक्षम होना है। दूसरा वैश्विक उम्मीदवार में '$' नामस्थान का उपयोग कर रहा है, तो दूसरा उम्मीद के रूप में काम नहीं करेगा। –