jQuery не работает с WordPress - PullRequest
1 голос
/ 03 октября 2011

Я думаю, что существует конфликт с тем, как WordPress использует jQuery:

Пробовал:

(function($) {
    $(document).ready(function(){
        alert('hello');
    });
}(jQuery));

Пробовал также:

$(document).ready(function(){
    alert('hello');
});

И дампы Firebug:

jQuery is not defined
[Detener en este error] }(jQuery)); 

А также пробовал:

jQuery.noConflict();
jQuery(document).ready(function($) {
   alert("hello");
});

и Firebug:

jQuery is not defined
[Detener en este error] jQuery.noConflict(); 

И jQuery импортируется

Любойидея, что я пропускаю?

Ответы [ 5 ]

3 голосов
/ 03 октября 2011

Похоже, jQuery недоступен (не определены ни переменная $, ни jQuery). В вашем конкретном случае это потому, что библиотека вообще не загружается. Поместите следующий код в <head> раздел перед вашими скриптами, требующими jQuery:

<script src="//code.jquery.com/jquery-1.6.4.min.js"></script>
2 голосов
/ 04 октября 2011

, даже если ваш документ работает сейчас, для лучшего понимания:

  1. измените все свои $ знак с помощью "Jquery". (конфликтует с ядром WordPress)
  2. Вы не объявляете класс или идентификатор.

например в вашем коде:

  $('header').hide();

должно быть

jQuery('#branding').hide();

и

$('body').css('position','relative');

должно быть

jQuery('.home').css('position','relative');

ваш код является семантическим, где заголовок - это не тег, а тег, то есть заголовок - это не класс или идентификатор (скорее, #branding - это идентификатор), а также тело (скорее .home или .blog) Лучше было бы объявить класс.

2 голосов
/ 03 октября 2011

Как вы включаете JQuery? В любом случае, этого не происходит (проверьте заголовок / проверьте DOM страницы через firebug - без ссылок $ или jQuery).

Правильный способ связать размещенную версию jquery (и в данном случае зависимый плагин) в WordPress выглядит следующим образом:

в functions.php (или плагин ... или что-то еще)

// register scripts 
if (! function_exists(thickbox_register){
function thickbox_register() {
    wp_deregister_script( 'jquery' );
    wp_register_script( 'jquery','http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js');
    wp_register_script( 'thickbox', 'path to thickbox'.thickbox.js, 'jquery');
    }  
}   
add_action('init', 'thickbox_register');

//print the now registered scripts 
if (! function_exists(thickbox_enqueue){
function thickbox_enqueue() {
    wp_enqueue_script( 'jquery' );
    wp_enqueue_script( 'thickbox' );
    }  
}
add_action('wp_print_scripts', 'thickbox_enqueue');

// do the same for css 
if (! function_exists(thickbox_style_enqueue){
function thickbox_style_enqueue() {
    wp_register_style( 'thickbox', 'path to css'.thickbox.css );
    wp_enqueue_style( 'thickbox' );
    }  
}
add_action('wp_print_styles', 'thickbox_style_enqueue');

Чтобы WordPress доставлял правильные сценарии в нужное время, вы должны добавить действия в init и зарегистрировать сценарии WordPress.

Надеюсь, это поможет

0 голосов
/ 03 октября 2011

Попробуйте ввести этот код в <head>

<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
0 голосов
/ 03 октября 2011

Проверен URL-адрес, который вы опубликовали, и, похоже, нет ссылки на jQuery.

Включите приведенный ниже код в заголовок

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"> </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...