Есть ли способ отключить режим jQuery noconflict в Wordpress?
Есть ли способ отключить режим noconflict jquery в Wordpress? Я не имею в виду загрузку альтернативной версии jquery или общих обходных решений:
jQuery(document).ready(function( $ ) {
});
или
(function($) {
})( jQuery );
Я имею в виду, есть ли способ отключить режим noconflict для jquery, поставляемого с Wordpress?
Как работает настройка jQuery.noConflict(false)
? и если да, где бы вы его установили?
Ответы
Ответ 1
После некоторых исследований, это лучший ответ, который я могу вам дать:
$ = jQuery.noConflict(true);
Чтобы ответить на другой вопрос, вы не можете передать false, атрибут используется для контроля того, что происходит с глобальными переменными. Документацию можно найти здесь:
http://api.jquery.com/jQuery.noConflict/
Также обратите внимание, что вы можете загрузить две разные версии jQuery, как она предлагает (но не рекомендуется).
Ответ 2
Если вы включаете свою собственную библиотеку javascript или скрипты, вы можете добавить следующее к самому верхнему:
var $ = jQuery;
Ответ 3
Я нашел другой способ сделать переменную $
доступной по всему миру. Просто поставьте следующее в своей теме functions.php или в плагин:
function so17687619_jquery_add_inline() {
wp_add_inline_script( 'jquery-core', '$ = jQuery;' );
}
add_action( 'wp_enqueue_scripts', 'so17687619_jquery_add_inline' );
Это приведет к выводу $ = jQuery;
в качестве встроенного script сразу после тега script для jQuery. Таким образом, любые скрипты, включенные после, имеют экземпляр jQuery, доступный как $
и jQuery
.
Ответ 4
Чтобы отключить, перейдите в файл wp-includes/js/jquery/jquery.js
и удалите jQuery.noConflict()
из последней строки. Или, как вы предположили, просто установите значение boolean равным false.
Чтобы вы могли заменить содержимое чистой загрузкой с jquery.com, в trac происходит интенсивная дискуссия.
Ответ 5
Добавление этого сработало для меня наконец:
var $ = jQuery.noConflict();
Вы можете добавить это в свой файл header.php в разделе head:
<script>var $ = jQuery.noConflict();</script>
Или, если вы используете дочернюю тему, добавьте это в functions.php в каталог дочерних тем:
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' );
И создайте файл main.js в том же месте, что и functions.php(в директории child theme direcotry), и в этом файле добавьте следующее:
var $ = jQuery.noConflict();