2016-07-12 17 views
0

divの表示を非表示から表示に変更するためのこれらのイベントリスナーを含むAPIを使用しています。イベントリスナー関数をバインドすると、後でその関数を呼び出す必要がありますか?

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

.cart .btn--closeが存在する場合は、bindEventListeners()に電話する必要があります。その要素がページに静的に存在する場合は、

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

よう$(document).ready()ハンドラでそれを呼び出す必要がありますか.cart .btn--closeが動的に作成されている場合、それをDOMにロードされた後、その後bindEventListeners()が行われるべきであるAJAX呼び出して言います。

+0

ありがとうございました! $(document).ready()ハンドラの中でコールするように設定しました:) – lopu

関連する問題