我有下一个 html 结构:
<div class="wrapper">
<div class="top"></div>
<div class="bottom></div>
</div>
我在主干 View 中设置了下一个事件:
className: 'wrapper',
events: {
'click .wrapper' : 'click_handler'
},
click_handler: function(event) {
console.log("click handled")
}
此代码不会在单击包装器时触发单击事件,但如果我将单击选择器更改为“.top”或“.bottom”,则会触发单击。
我做错了什么?与Capture/Bubble有关吗?
最佳答案
div.wrapper
是您 View 的 $el 吗? 'click .wrapper'
表示委托(delegate)事件处理程序,这意味着它只会触发具有 .wrapper
类的 View $el 的后代。
jQuery's documentation for .on
描述了事件委托(delegate)。
编辑
从您的事件哈希中删除 .wrapper
可能会给您带来您正在寻找的行为。换句话说:
className: 'wrapper',
events: {
'click' : 'click_handler'
},
click_handler: function(event) {
console.log("click handled")
}
关于javascript - 主干事件没有捕捉到对 div 的点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22611135/