2013-07-16 14 views
10

Czy istnieje sposób wyłączenia trybu jonizacji noconflict w Wordpress? Nie mam na myśli ładowanie alternatywną wersję jQuery lub wspólne obejścia:Czy istnieje sposób wyłączenia trybu jonizacji noconflict w Wordpress?

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

czyli

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

To znaczy czy jest jakiś sposób, aby po prostu wyłączyć tryb noconflict dla jQuery dostarczonym z Wordpress ?

Podobnie jak ustawienie jQuery.noConflict(false) działa? a jeśli tak, to gdzie by to ustawić?

+1

Więcej specjalistów znajdziesz na [wordpress.se]. Ale, proszę, najpierw sprawdź [etykietę na cross-posting] (http://meta.stackexchange.com/q/64068/185667). Podpowiedź: każdy, kto zna rozwiązanie lub obejście problemu, zapyta Cię *, dlaczego chcesz to zrobić *. – brasofilo

Odpowiedz

10

Po kilku badań, jest to najlepsza odpowiedź mogę podać:

$ = jQuery.noConflict(true); 

Aby odpowiedzieć na inne pytania, no nie można przejść w fałsz, atrybut służy do kontrolowania, co dzieje się globalny zmienne. Dokumentację można znaleźć tutaj: http://api.jquery.com/jQuery.noConflict/

Należy również pamiętać, że można załadować 2 różne wersje jQuery zgodnie z sugestią (ale nie jest to zalecane).

+0

gdzie ustawiasz '$ = jQuery.noConflict (true);'? – AidanCurran

+1

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

+0

ustawisz ten kod w dowolnym momencie PO ustawieniu jQuery noconflict, ale również musi być PRZED jakimkolwiek z $ prefiksowanym kodem Jeśli cały twój kod znajduje się w pliku 1 js ... po prostu umieść go u góry –

0

Aby wyłączyć, po wyłączeniu przejdź do pliku wp-includes/js/jquery/jquery.js i usuń jQuery.noConflict() z ostatniego wiersza. Lub jak zasugerowałeś, ustaw boolean na false.

To lub możesz zastąpić zawartość czystym pobranym z jquery.com, w Internecie trwa intensywna debata w numerze trac.

+1

Nie chciałbym modyfikować tego pliku, ponieważ został on zastąpiony aktualizacją WP. Dziękuję za link do debaty Trac, jestem zwolennikiem jego usunięcia, a jeszcze lepiej, zrobienia z tego miejsca. – AidanCurran

+2

cóż, tak, byłoby to nadpisać po aktualizacji, ale poza tym, jak debata w Traku mówi, że nie ma innego sposobu, aby to zatrzymać. Opcja matt podana poniżej ma zostać umieszczona w pliku js. ale do tego można również po prostu użyć opakowania. Ustawiłem kartę shortcode w sublime, aby dodać (funkcję ($) {} (jquery), za pomocą zaledwie dwóch kliknięć: D – vimes1984

5

Jeśli w tym własne biblioteki javascript lub skryptów można dodać następujące samej górze:

var $ = jQuery; 
0

Dodawanie ten pracował dla mnie w końcu:

var $ = jQuery.noConflict(); 

Możesz dodać ten w plik header.php w sekcji head:

<script>var $ = jQuery.noConflict();</script> 

Lub jeśli używasz motywu potomnego, dodaj to do funkcji. php w katalogu motywu dziecka:

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'); 

i utworzyć plik main.js w tym samym miejscu co functions.php (w direcotry motyw dziecko) iw tym pliku dodaj:

var $ = jQuery.noConflict(); 
2

Znalazłem inny sposób na globalne udostępnienie zmiennej $. Wystarczy umieścić następujące w functions.php motywu lub w plugin:

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

Wyjście wola $ = jQuery; jako skrypt inline bezpośrednio po tagu script dla jQuery. Tak więc wszystkie skrypty uwzględnione po mają wystąpienie jQuery dostępne jako $ i jQuery.

Powiązane problemy