2016-07-12 2 views
0

Я использую api, который включает в себя этих прослушивателей событий для изменения отображения div от скрытого до видимого.Функция прослушивания событий привязки, мне нужно вызвать функцию позже?

function bindEventListeners() { 
    /* cart close button listener */ 
    $('.cart .btn--close').on('click', closeCart); 

    /* click away listener to close cart */ 
    $(document).on('click', function(evt) { 
     if((!$(evt.target).closest('.cart').length) && (!$(evt.target).closest('.js-prevent-cart-listener').length)) { 
     closeCart(); 
     } 
    }); 
}; 

Эти слушатели не работают, прослушиватель кликов не работает, и ни одна из них не закрывает кнопку. В документах поддержки они просто передаются так, но функция bindEventListeners должна быть вызвана где-то для их работы или как их слушать?

+0

Чтобы выполнить код в функции, да, функция должна быть вызвана где-то, после того, как элементы, которые она ссылается, существуют. – Teemu

ответ

1

Необходимо позвонить по телефону bindEventListeners() после того, как .cart .btn--close существует. Если этот элемент существует статический на странице вы должны вызвать его в $(document).ready() обработчика как

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

Или, если .cart .btn--close создаются динамически говорите через AJAX вызов, то bindEventListeners() должно быть сделано после того, как он будет загружен в DOM.

+0

Ах, спасибо большое! Я установил его для вызова внутри обработчика $ (document) .ready() :) – lopu

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