我有下一个html结构:
<div class="wrapper">
<div class="top"></div>
<div class="bottom></div>
</div>
我在Backbone View中设置了下一个事件:
className: 'wrapper',
events: {
'click .wrapper' : 'click_handler'
},
click_handler: function(event) {
console.log("click handled")
}
单击包装器时,此代码不会触发click事件,但如果我将点击选择器更改为&#34; .top&#34;或&#34; .bottom&#34;点击将被触发。
我做错了什么?它与Capture / Bubble有关吗?
答案 0 :(得分:5)
div.wrapper
您的观点是否为$ el? 'click .wrapper'
表示委派事件处理程序,这意味着它只会触发具有.wrapper
类的视图的后代。
.on
的{p> jQuery's documentation描述了事件委派。
修改强>
从您的事件哈希中删除.wrapper
可能会为您提供您正在寻找的行为。换句话说:
className: 'wrapper',
events: {
'click' : 'click_handler'
},
click_handler: function(event) {
console.log("click handled")
}