2014-02-12 3 views
0

Так у меня есть страница здесь: http://8wayrun.tv/Cant выяснить, как связать событие JQuery

Его есть JS файл здесь:

/** @param {jQuery} $ jQuery Object */ 
!function($, window, document, _undefined) 
{ 
    $('#headbar').load(function($form) 
    { 
     $(this).addClass("test"); 
    }); 
} 
(jQuery, this, document); 

Сво относительно простой файл JS; все его выполнение привязывается к элементу #headbar и добавляет класс test. Однако по какой-то причине он не добавляет класс к #headbar.

Что я делаю неправильно?

ответ

1

Этот элемент еще не существует, когда ваш JavaScript работает. Вы должны поместить свой DOM-манипуляционный код в обратный вызов $(document).ready.

$(document).ready(function() { 

    /** @param {jQuery} $ jQuery Object */ 
    !function($, window, document, _undefined) 
    { 
    $('#headbar').load(function($form) 
    { 
     $(this).addClass("test"); 
    }); 
    } 
    (jQuery, this, document); 

}); 
+0

Хотя стиль не-конфликта анонимная функция будет иметь больше смысла вне '$ (документ) .ready (функция() {'. – helion3

+0

хорошо ... Я сделал эти изменения в мой файл JS, и его еще не работает –

+0

Затем взломайте инструменты разработчика и начните выполнять некоторые отладки. Начните с инструкции 'debugger' и убедитесь, что ваш' $ ('# header') 'выбирает элемент. – meagar

Смежные вопросы