jQuery undefined ошибка функции с WP jQuery, но работает с Google CDN

Я читал несколько статей, отговаривающих разработчиков WP от замены enqueued jQuery версией jQuery для Google CDN. Я продаюсь.

Я теперь enqueueing WP jQuery версии, которая использует jQuery.noConflict ().

Тем не менее, я получаю ошибку «undefined is not function» в домашнем файле .js, который использует $ selectors. Даже когда я меняю селектор на «jQuery», я все равно получаю сообщение об ошибке. Я убедился, что jquery загружен до файла .js.

Для тестирования, если я отключу очередь jQuery WP с версией Google CDN, я не получу никаких ошибок.

Я хочу иметь возможность использовать jQuery WP, но я не могу заставить его работать с самодельным кодом jquery.

Любые мысли о других идеях отладки?

РЕДАКТИРОВАТЬ:

Вот фрагмент домашнего файла .js, который не работает:

var brk = { start: function($){ $("#navigation ul li a").css("color", "#FFF").css("text-decoration", "none"); $("#topButtons a.clearbtn").css("color", "#FFF").css("background", "transparent").css("border", "1px solid #FFF"); } } jQuery(document).ready(brk.start($)); 

Ошибка 'undefined is not a function' находится в первой строке $: $ ("# navigation ul li a") …

Solutions Collecting From Web of "jQuery undefined ошибка функции с WP jQuery, но работает с Google CDN"

Ну, тем не менее, ваш код неверен.

 jQuery(document).ready(brk.start($)); 

В $ здесь ничего не говорится. Вы должны изменить это на:

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

Если включен режим noConflict, значение $ не определено. Если вы хотите, чтобы это было определено, вы должны сами определить его.

Этот код:

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

Есть пара вещей.

Во-первых, он перехватывает функцию для события document.ready. Во-вторых, он определяет функцию для вызова. В-третьих, он устанавливает значение $ jQuery для кода внутри этой функции.

Ваш код не определял функцию и не задавал значение $. Вы пытались вызвать brk.start с параметром $, а затем приложить то, что возвращаемое значение было для document.ready.

Функция brk.start(whatever) – вызов функции, а не определение функции. Вам нужно определить функцию, чтобы прикрепить ее к событию document.ready.

В качестве альтернативы это может сработать. Я его не тестировал.

 jQuery(document).ready(brk.start); 

Функция brk.start, без круглых скобок, является функцией и поэтому может быть упомянута таким образом. Может быть.

Хотя честно, если вы не хотите присоединять вызов функции к document.ready и просто хотите вызвать его в режиме реального времени, тогда это выполнит работу:

 brk.start(jQuery); 

Используйте версию jQuery для noConflict WP. Затем используйте свои пользовательские вызовы, подобные этому.

 <script type="text/javascript"> <!-- jQuery(document).ready(function($) { $('#topmenu').toggle(); }); //--> </script> 

Вы также можете использовать $ inside. Это то, чем я занимаюсь.