2013-07-16 6 views
10

Gibt es eine Möglichkeit, jquery noconflict Modus in Wordpress auszuschalten? Ich meine nicht, eine alternative Version von jQuery oder die gemeinsamen Abhilfen Laden:Gibt es eine Möglichkeit, jquery noconflict Modus in Wordpress auszuschalten?

jQuery(document).ready(function($) { 
}); 

oder:

(function($) { 
})(jQuery); 

ich meine, ist es eine Möglichkeit, nur noConflict Modus für die jquery deaktivieren mit Wordpress ausgeliefert ?

Wie würde Einstellung jQuery.noConflict(false) funktionieren? und wenn ja, wo würdest du es einstellen?

+1

Weitere Spezialisten finden Sie unter [wordpress.se]. Überprüfen Sie jedoch zunächst die [Etikette für Cross-Posting] (http://meta.stackexchange.com/q/64068/185667). Tipp: Jeder, der eine Lösung oder einen Workaround kennt, wird dich fragen * warum du es machen willst *. – brasofilo

Antwort

10

Nach einigen Recherchen, das ist die beste Antwort, die ich Ihnen geben kann:

$ = jQuery.noConflict(true); 

Ihre andere Frage zu beantworten, nein man kann nicht in falsch übergibt, wird das Attribut, das zur Kontrolle, was zu globalen geschieht Variablen. Sie können die Dokumentation hier finden: http://api.jquery.com/jQuery.noConflict/

Beachten Sie auch, dass Sie 2 verschiedene Versionen von jQuery laden können, wie es vorschlägt (wird aber nicht empfohlen).

+0

wo setzen Sie '$ = jQuery.noConflict (true);' – AidanCurran

+1

@AidanCurran http: //tommaitland.net/2012/10/disabling-jquery-no-conflict-mode-in-wordpress/ – Jacksonkr

+0

Sie würden diesen Code jederzeit nach dem Jquery noconflict setup einstellen, aber auch es muss vor einem Ihrer $ Präfix-Code sein Wenn Ihr gesamter Code in einer js-Datei ist ... setzen Sie ihn einfach an die Spitze –

0

Zum Ausschalten, gehen Sie zu Ihrer wp-includes/js/jquery/jquery.js Datei und entfernen Sie die jQuery.noConflict() aus der letzten Zeile. Oder wie Sie vorgeschlagen haben, setzen Sie den Booleschen Wert auf false.

Das oder Sie könnten den Inhalt mit einem sauberen Download von jquery.com ersetzen, gibt es eine intensive Debatte in der trac.

+1

Ich möchte diese Datei nicht ändern, da sie mit WP Update überschrieben würde. Danke für den Link zur Trac-Debatte, ich bin dafür, es zu entfernen oder, noch besser, es zu einem Setting zu machen. – AidanCurran

+2

Nun, ja, es würde auf Update überschreiben, aber abgesehen davon, wie die Debatte im Trac sagt, gibt es keinen anderen Weg, um es zu stoppen. Die Option matt, die Sie unten angeben, soll in Ihrer js-Datei platziert werden. aber dafür können Sie auch nur den Wrapper verwenden. Ich habe eine Shortcode-Registerkarte in Sublime gesetzt, um die Funktion ($) {} (jquery) in nur zwei Klicks hinzuzufügen: D – vimes1984

5

Wenn Sie Ihre eigenen sind, einschließlich JavaScript-Bibliothek oder Skripte können Sie Folgendes ganz oben hinzufügen:

var $ = jQuery; 
0

Addiert man diese schließlich für mich gearbeitet:

var $ = jQuery.noConflict(); 

Sie können dieses Add in Ihre Datei header.php im Kopfbereich:

Oder wenn Sie untergeordnete Thema verwenden, fügen Sie das zu Funktionen hinzu. php in Ihrem Kind Themenverzeichnis:

function my_scripts_method() { 
    wp_enqueue_script(
     'custom-script', 
     get_stylesheet_directory_uri() . '/main.js', 
     array('jquery') 
    ); 
} 
add_action('wp_enqueue_scripts', 'my_scripts_method'); 

Und eine main.js Datei in der gleichen Position wie functions.php erstellen (in dem Kind Thema direcotry) und in dieser Datei hinzufügen, um diesen:

var $ = jQuery.noConflict(); 
2

Ich habe einen anderen Weg gefunden, die Variable $ global verfügbar zu machen. Legen Sie einfach die folgenden in Ihrem Thema des functions.php oder in einem Plugin:

function so17687619_jquery_add_inline() { 
    wp_add_inline_script('jquery-core', '$ = jQuery;'); 
} 
add_action('wp_enqueue_scripts', 'so17687619_jquery_add_inline'); 

Dies wird Ausgabe $ = jQuery; als Inline-Skript unmittelbar nach dem Skript-Tag für jQuery. Daher enthalten alle nachfolgenden Skripts die jQuery-Instanz als $ und jQuery.

Verwandte Themen