绑定事件监听器的功能,我以后需要调用该函数吗?

时间:2016-07-12 04:12:37

标签: javascript jquery

我正在使用包含这些事件监听器的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是否需要在某处调用才能使它们工作或者它们应该如何监听?

1 个答案:

答案 0 :(得分:1)

bindEventListeners()存在后,您需要致电.cart .btn--close。如果该元素在页面上静态存在,则应在$(document).ready()处理程序中调用它,如

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

或者如果通过ajax调用动态创建.cart .btn--close,那么bindEventListeners()应该在加载到DOM之后完成。