2009-11-14 2 views
0

Имея немного проблем с использованием плагинов jQuery (Superfish, jQuery UI и т. Д.) С помощью Wordpress. Все работает отлично на моем обычном сайте non-Wordpress, но Wordpress, похоже, конфликтует с JQuery. Должен быть какой-то способ обойти это.Использование плагинов jQuery с Wordpress

Кроме того, я использую Каррингтон-Рамки, если это имеет значение.

В веб-инспектор Safari, я получаю эти ошибки:

ReferenceError: Can't find variable: jQuery 
ReferenceError: Can't find variable: $ 
+0

Как вы включаете jQuery на страницах WordPress? Самый безопасный способ, вероятно, заключается в использовании [wp_enqueue_script()] (http://digwp.com/2009/06/including-jquery-in-wordpress-the-right-way/), который загрузит (при необходимости) WordPress самостоятельно копия jQuery. Также, как вы включаете код, который дает вам проблему? Он просто встроен на страницу или находится в отдельном файле? –

ответ

2

Wordpress и JQuery не конфликтуют друг с другом. Wordpress находится на сервере, jQuery находится на клиенте, и помимо обращения к HTML, возвращаемому Wordpress, эти два не имеют особого отношения друг к другу. Вы получите эту ошибку, если javascript, который определяет объект jQuery, не был должным образом загружен/проанализирован браузером. Три решения по поиску и устранению неисправностей:

  1. Проверьте и убедитесь, что ваш клиент делает запрос на javascript-файл jQuery. Если нет, то тег сценария, запрашивающий файл, может быть неправильно включен на вашей странице.
  2. Если он делает запрос, убедитесь, что он успешный. Если ответ представляет собой код 404 или какую-либо другую ошибку, исправить все, что вызывает его (неправильный URL-адрес, неправильные разрешения и т. Д.)
  3. Я заметил, что при использовании мини-версии jQuery браузер иногда выдает ошибку, когда пытаясь разобрать код, что приведет к ошибке ссылки, которую вы испытываете, когда пытаетесь использовать функцию jQuery позже в коде. Если вы используете мини-версию jQuery, попробуйте переключиться на некомпактную версию и убедитесь, что это решает вашу проблему.
+0

Не обязательно верно. jQuery включен в страницы администрирования WordPress. Кроме того, некоторые темы могут включать в себя JS-библиотеки, такие как Prototype, которые конфликтуют. – ceejayoz

+0

jQuery загружается отлично, как и все плагины, и код, который я написал. Попробует не использовать мини-версию jquery ui. – Tim

+0

Вы говорите, что все загружается нормально ... когда вы получаете ошибку? Я бы хотел получить ошибку, когда браузер пытается выполнить функцию '$ (window) .load()'. Я предполагаю, что это третья вещь, и что-то о мини-jQuery, что Safari не нравится. –

1

Просто поместите все ваши JS в разделе

<?php 
    wp_head(); 
?> 

. Если у вас есть проблемы с отдельными файлами, все строки:

var $j = jQuery.noConflict(); 

наверху.

+0

Если 'jQuery.noConflict()' что-то изменило, значит, у вас есть еще один объект в DOM, пытающийся использовать имя '$'. Вы используете другую фреймворк javascript на своей странице? –