2010-04-25 7 views
6

मैं एक बुकमार्कलेट बना रहा हूं और निश्चित रूप से मैं jQuery का उपयोग करना चाहता हूं। लेकिन, अगर मैं किसी साइट पर jQuery (एक स्क्रिप्ट-टैग को सिर में जोड़ना) शामिल करता हूं, तो क्या साइट स्वयं ही काम करेगी, अगर उसके पास कुछ और जेएस है?यदि मैं बुकमार्कलेट के माध्यम से jQuery शामिल करता हूं, तो क्या यह साइट पर मूल जावास्क्रिप्ट को बर्बाद कर देगा?

Martti लेन

उत्तर

3

इसे तोड़ने होगा? .... शायद :)

वहाँ मेरे सिर कि ऐसा होगा के ऊपर से 2 वास्तव में सामान्य कारण हैं। वे एक और पुस्तकालय $ का उपयोग करता है तो आप एक संघर्ष मिलेगा यह मुख्य उद्देश्य है के लिए उपयोग कर रहे हैं, इस तथापि jQuery.noConflict() साथ समाधान योग्य है, इस तरह:

var $j = jQuery.noConflict(); //give `$` back to whatever had it... 
$j("selector").doSomething(); //use the $j you assigned or jQuery from now on 

एक दूसरे होगा वे पहले से ही jQuery लोड (संभवतः एक अलग संस्करण भी)। मैं सिर्फ अपनी स्क्रिप्ट लोड करने से पहले एक jQuery वस्तु परीक्षण जोड़ना होगा, इस तरह:

if (typeof jQuery == 'undefined') { //load jQuery } 
//jQuery has been loaded, either by your or originally, keep going... 

पहले से ही भरा हुआ है के लिए यह समाधान एक चेतावनी है, अगर वे एक वर्ष jQuery के संस्करण था, तो आप केवल सुविधाएं होंगी उस संस्करण का। मुझे पृष्ठ में पुराने संस्करण और एक नया लोड करने के तरीके के बारे में पता नहीं है और बहुत अजीब व्यवहार नहीं है ... यह सिर्फ ऐसा करने के लिए डिज़ाइन नहीं किया गया था।

इसके अलावा, मैं मामले के लिए इन दोनों काम arounds गठबंधन होता है कि jQuery पहले से ही भरी हुई है और $ है, इस तरह:

if (typeof jQuery == 'undefined') { 
    var used = typeof $ != 'undefined'; 
    //load jQuery 
    if(used) jQuery.noConflict(); 
} 
window.$j = jQuery; 
//always use $j in your script, it'll always be present. 
+0

इस बारे में क्या? $ जे (दस्तावेज़) .ready (function() {// यहां $ (चयनकर्ता) की तरह सामग्री} क्या यह ठीक नहीं है? –

+0

बीटीडब्ल्यू, महान उत्तर के लिए धन्यवाद! :) –

+1

@Martti - आप अपना कोड लपेट सकते हैं तो इसके अंदर $ $ काम करता है, जैसे: '(फ़ंक्शन ($) {$ (फ़ंक्शन() {/ * document.ready stuff * /});/* $() * /} का उपयोग कर अन्य सामग्री) (jQuery) ; ' –

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

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