绑定事件监听函数,后面还需要调用吗?

Binding event listeners function, do I need to call the function later?

我正在使用 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 才能使它们正常工作,或者它们应该如何收听?

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

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

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