绑定事件监听函数,后面还需要调用吗?
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 之后完成。
我正在使用 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 之后完成。