2016-07-12 124 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調用然後將其加載到DOM後bindEventListeners()應該做的事說了。

+0

非常感謝你!我已經設置它在$(document).ready()處理程序中調用:) – lopu

相關問題