2011-11-23 10 views
8

प्रलेखन आप इस तरह $ .noConflict() का उपयोग कर सकते कहते हैं:jQuery के noConflict: बस एक त्वरित सोचा

jQuery.noConflict(); 
(function($) { 
    $(function() { 
    // more code using $ as alias to jQuery 
    }); 
})(jQuery); 
// other code using $ as an alias to the other library 

यह भी कहा गया है कि यह बुला jQuery वस्तु का एक उदाहरण देता है, तो मैं ऐसा कर सकता है :

jQuery.noConflict()(function(){ 
    // code using jQuery 
}); 
// other code using $ as an alias to the other library 

हालांकि, यह संयोजन मान्य है?

(function($) { 
    $(function() { 
    // more code using $ as alias to jQuery 
    }); 
})(jQuery.noConflict()); 
// other code using $ as an alias to the other library 

यदि हां, तो क्या ऐसा करने का कोई कारण नहीं है? और यह भी (अगर यह काम करता है), हमेशा इस विधि का उपयोग क्यों न करें कि हमारे बंद होने के अंदर, $ == jQuery?

+2

केवल नकारात्मक पक्ष यह है मुझे लगता है कि यदि आप उस जैसे कई ब्लॉक है, तो आप अनावश्यक रूप से बुला 'jQuery.noConflict()' की तुलना में अधिक एक बार होगी है। माना जाता है कि यह एक बहुत ही महत्वपूर्ण नकारात्मक पक्ष नहीं है। – Wiseguy

+0

@Wiseguy हाँ मुझे लगता है कि आप इसे पहले बंद करने पर ही करेंगे, अन्यथा यह एक कचरा है। – JesseBuesking

+0

फिर आपको ट्रैक रखना होगा कि कौन सा ब्लॉक पहले लोड किया गया है। क्या होगा यदि आप बाद में ब्लॉक को जोड़ते हैं/पिछले एक से ऊपर एक .js फ़ाइल शामिल करते हैं? मैं बस ' 'शीर्ष पर और बस' (फ़ंक्शन ($) {}) (jQuery) 'का उपयोग करें। मूल रूप से व्यक्तिगत वरीयता के लिए उबाल जाता है, मुझे लगता है। – Wiseguy

उत्तर

5

अंतिम विधि भी काम करती है - jQuery.noConflict() jQuery ऑब्जेक्ट देता है, जो $ फ़ंक्शन के लिए तर्क के रूप में पारित किया जाता है।

मैं एक कारण यह है कि जिस तरह से ऐसा नहीं करने के लिए नहीं दिख रहा है और अन्य तरीकों के लिए इसे पसंद करेंगे।

5

मुझे नहीं लगता कि jQuery.noConflictreturnsjQuery ऑब्जेक्ट से नहीं है और फ़ंक्शन कहने से पहले इसका मूल्यांकन किया जाता है।

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