Backbone事件没有捕获点击div

时间:2014-03-24 13:42:24

标签: javascript backbone.js

我有下一个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有关吗?

1 个答案:

答案 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")
}