2011-08-03 12 views
5

मेरे पास एक पृष्ठ है जिसमें jQuery 1.6.2 है। कुछ मामलों में मैं एक ऐप लोड करता हूं जिसके लिए jQuery 1.4.2 की आवश्यकता होती है। मुझे 1.4.2 संस्करण का उपयोग करने के लिए ऐप को मजबूर करने की आवश्यकता है। मैं चयनकर्ताओं ($ से $$) को बदलने में सक्षम नहीं हूं।jQuery बल पुराने संस्करण को बिना किसी संघर्ष के jQuery चयनकर्ताओं को बदलने के

क्या jQuery 1.4.2 के उपयोग को मजबूर करने का कोई तरीका है?

उदाहरण के लिए एक तत्व पर क्लिक करके मैं ऐप लोड करता हूं। ऐप लोड करने से ठीक पहले मैं jQuery के पुराने संस्करण को खींचने के लिए getScript का उपयोग कर सकता हूं?

+0

यदि संभव हो तो पूरी साइट को jQuery 1.4.2 का उपयोग करने के लिए यह अधिक समझदारी हो सकती है। क्या ऐसी साइट पर बिट्स हैं जिनके लिए 1.6.2 की आवश्यकता है, या आप बस पूरे ऐप को डाउनग्रेड कर सकते हैं? – saalon

+0

@saalon: आपको हमेशा नवीनतम पर होना चाहिए _strive_। – Mrchief

+0

@ मर्चिफ़: स्पष्ट रूप से, लेकिन कई कारण हैं कि यह हमेशा संभव क्यों नहीं होता है, और आवश्यक पुस्तकालयों के साथ असंगतता उनमें से एक है। मैं यह देखने की कोशिश कर रहा हूं कि यह टेबल पर एक विकल्प है या नहीं। मुझे लगता है कि लाइब्रेरी नए के साथ संगत होने तक दो अलग-अलग संस्करणों को लोड करने की तुलना में किसी चीज के पुराने संस्करण का उपयोग करके बेहतर हो जाता है। लेकिन एक तरफ राय, यह या तो एक विकल्प है या यह नहीं है, और यह जानना अच्छा है कि कौन सा है। – saalon

उत्तर

7

हाँ आप कर सकते हैं, http://blog.nemikor.com/2009/10/03/using-multiple-versions-of-jquery/ पर इस महान लेख को देखें।

कुछ इस तरह:

<!-- load jQuery 1.6.2 --> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.js"></script> 

<!-- revert global jQuery and $ variables and store jQuery in a new variable --> 
<script type="text/javascript"> 
var jQuery_1_6_2 = $.noConflict(true); 

(function($){ 
    /* app code that uses jQuery 1.6.2 */ 
}(jQuery_1_6_2)) 

</script> 


<!-- load jQuery 1.4.2 --> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.js"></script> 

<!-- revert global jQuery and $ variables and store jQuery in a new variable --> 
<script type="text/javascript"> 
var jQuery_1_4_2 = $.noConflict(true); 

(function($){ 
    /* app code that uses jQuery 1.4.2 */ 
}(jQuery_1_4_2)) 

</script> 
+0

+1 डुह, मैंने कभी भी jquery पर हाकोनफ्लिक्ट का उपयोग नहीं किया है, हमेशा प्रोटोटाइप और mootools जब ग्राहकों को पहले से ही उपयोग में है। – Maverick

+0

मैं ऐप और मेरे चयनकर्ता को अकेले छोड़ना चाहता हूं। दोनों को $ – jhanifen

+0

के रूप में रखें, वैसे, उस आलेख में आलेख में बताए गए स्क्रिप्ट को लोड करें और ऐप्स के चारों ओर एक रैपर फ़ंक्शन का उपयोग करें: '(function ($) {/ * ऐप कोड जो jQuery 1.6.2 * /} का उपयोग करता है (jQuery_1_6_2)) 'और' (फ़ंक्शन ($) {/ * ऐप कोड जो jQuery 1.4.2 * /} (jQuery_1_4_2) का उपयोग करता है) ' – Mrchief

1

आप बस और काम करने के लिए कोई संघर्ष नियम प्राप्त करने की कोशिश यह अभी भी फिर के लिए काम नहीं कर रहा है, तो उसके लिए एक अच्छा कारण नहीं है। ऊपर पोस्ट की गई विधियां तब तक काम नहीं करती जब तक कि आपके पास कोई निश्चित संस्करण न हो।

HTML में मौजूदा स्टाइल शीट कोड में कोड जोड़ने के बजाय, इसे स्वयं दें।

jQuery.noConflict(); 

मैं jQuery 1.4.2 और MooTools के साथ इस विधि का उपयोग कर रहा हूं। एक जादू की तरह काम करता है।

+0

स्क्रैच करें। बस ध्यान दिया कि कोड सिर्फ jQuery 1.4.2 काम करने से रोकता है। > _ < – SEspider

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