2010-04-25 2 views

Antwort

3

Wird es brechen? .... vielleicht :)

Es gibt zwei wirklich häufige Gründe aus der Spitze von meinem Kopf, dass dies geschehen würde. Wenn sie eine andere Bibliothek verwenden, die die $ verwendet es Hauptaufgabe ist dann werden Sie einen Konflikt erhalten, aber dies ist auflösbar mit jQuery.noConflict(), wie folgt aus:

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

Der andere wäre sie bereits haben jQuery geladen (möglicherweise auch eine andere Version). Ich würde nur ein jQuery Objekt Test hinzufügen, bevor das Skript geladen, wie folgt aus:

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

Diese Lösung für bereits geladen hat eine Einschränkung, wenn sie eine alte Version von jQuery hatte, werden Sie nur die Funktionen, die dieser Version. Ich kenne keine Möglichkeit, eine alte Version und eine neue auf der Seite zu laden, und ich habe nicht viel merkwürdiges Verhalten ... das war einfach nicht dafür gedacht.

Auch würde ich diese beiden Abhilfen für den Fall kombinieren, dass jQuery bereits geladen und ist die $, wie folgt aus:

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

Was ist das? $ j (Dokument) .ready (Funktion() {// Hier Zeug wie $ (Selektor)} Ist das nicht in Ordnung? –

+0

Btw, danke für die tolle Antwort! :) –

+1

@Martti - Sie können Ihren Code wickeln Also arbeitet das $ darin, wie folgt: '(function ($) {$ (function() {/ * document.ready stuff * /});/* anderes Zeug mit $() * /}) (jQuery) ; ' –

Verwandte Themen