it-swarm.com.de

$ Mit jQuery.noConflict () global zugänglich machen

Der Codex fördert diese Methode der Verwendung von $ in einer Plugin/Theme-JavaScript-Datei:

jQuery(document).ready(function($) {
    // $() will work as an alias for jQuery() inside of this function
});

Aber wenn Sie das tun, haben Sie nur Zugriff auf $ inside ready (). Ich denke, Funktionen sollten in kleine Module aufgeteilt werden, die von ready () aufgerufen werden und nicht alle in ready () zusammengefasst werden. Wenn ich also die Codex-Methode verwende, muss ich $ an jede Funktion übergeben, was ärgerlich und grob ist. Es ist auch ärgerlich, ständig jQuery zu schreiben, anstatt nur $ zu verwenden.

Ich kann $ = jQuery.noConflict(); nur am Anfang meiner JavaScript-Datei ausführen und dann ist $ überall verfügbar, aber ich vermute, dass dies in einigen Situationen Probleme mit anderen Plugins/Themes verursachen kann. Meine Suche ergab keine gründlichen Erklärungen oder endgültigen Antworten. Hat jemand irgendwelche Gedanken?

6
Ian Dunn

Du brauchst nicht $ = jQuery.noConflict();

Schließen Sie einfach alle Funktionen außerhalb von document.ready () in Folgendes ein:

(function($){  
  // use $ here safely
})(jQuery);
9
onetrickpony

hoffe diese antwort kann jemandem helfen

gib diesen Code ein:

 $ = jQuery.noConflict(true);

vor :

 $(document).ready(function($){ ... });
0
Johnnatan