Я знаю, что jQuery загружен, потому что я могу отключить $
jQuery, и все будет работать так, как ожидалось, но это будет беспорядочный сценарий, если я не смогу это исправить.
Этот сценарий:
jQuery(document).ready(function(){
$("ul.vimeo_desc_feed li a").click(function(){
alert($(this).attr('href'));
return false;
})
});
Выдает ошибку$ is not a function
Этот сценарий:
jQuery(document).ready(function(){
jQuery("ul.vimeo_desc_feed li a").click(function(){
alert(jQuery(this).attr('href'));
return false;
})
});
работает отлично.
Вы можете обернуть свой javascript внутри самовызывающейся функции, а затем передать
jQuery
ей в качестве аргумента, используя$
в качестве имени локальной переменной. Например:должно работать по назначению.
Если я правильно помню, версия jQuery, предоставленная WP (та, которую вы получаете, если вы
wp_enqueue_script('jquery')
) немедленно переводит jQuery в режим отсутствия конфликтов, что приводит$
к неопределенности.ААА понятно. Раньше я добавлял его вручную, что объясняет, почему я не сталкивался с этой проблемой.
Спасибо, я использовал альтернативный формат с jQuery в начале вместо конца… но не мог понять, как вернуть значение, с этим форматом я просто добавил return перед функцией самовызова, и это работает.
Очень полезный ответ.
+1: это более читабельно, чем
jQuery
в конце.… но это не стандартный способ выполнения анонимной функции. forum.jquery.com/topic/jquery-anonymous-function-calls
И да и нет. Оба они считаются «стандартными» способами. Один создает одноэлементный класс, который
$
определен локально. Другой просто определяет обработчик дляready
события документа и передает объект jQuery в обработчик как$
. Если вы пытаетесь подключиться кready
событию, более широко используется второй метод. Если вам нужен jQuery для какой-либо другой цели (например, чтобы подключиться$.browser
), вы должны использовать одноэлементный класс.+1 для jQuery(document).ready(function($){… дополнительную информацию о jquery и WordPress вы также можете прочитать в моем посте: wpengineer.com/2028/small-tips-using-wordpress-and-jquery.
Ты почти там!
Вы должны передать ссылку на jQuery как
$
функцию в свой метод, иначе он не будет работать. Если вы просто поместите $ внутри первогоfunction()
вызова, как я сделал выше, все будет работать нормально.Передача функции в jQuery является сокращением, поэтому
$(document).ready(...)
, поместив$
в качестве первого параметра вашего обратного вызова, вы создаете псевдоним для jQuery внутри этого обратного вызова:Вы можете увидеть документацию для этого здесь.