2014-03-24 129 views
1

醒目点击我的下一个HTML结构:骨干事件不是DIV

<div class="wrapper"> 
    <div class="top"></div> 
    <div class="bottom></div> 
</div> 

我已经下一个事件中的骨干视图设置:

className: 'wrapper', 
events: { 
    'click .wrapper' : 'click_handler' 
}, 
click_handler: function(event) { 
    console.log("click handled") 
} 

此代码不会触发点击当点击包装器时发生的事件,但如果我将点击选择器更改为“.top”或“.bottom”,点击将被触发。

我在做什么错?这与Capture/Bubble有关吗?

+0

显示全部查看代码。这很可能是顶级'div'是视图的'el',所以事件处理程序的选择器将不匹配'wrapper'类。 –

+0

@DavidSulc,它在el – Alon

回答

4

div.wrapper您的看法是$ el吗? 'click .wrapper'表示委托事件处理程序,这意味着它只会触发您的视图的具有.wrapper类的$ el的后代。

jQuery's documentation.on描述事件委托。

编辑

跌落.wrapper从您的活动散列可以给你你正在寻找的行为。换句话说:

className: 'wrapper', 
events: { 
    'click' : 'click_handler' 
}, 
click_handler: function(event) { 
    console.log("click handled") 
} 
+0

中的顶级div div.wrapper是我的视图的$ el,我如何捕获点击它? – Alon

+0

从事件散列中删除'.wrapper'。 – psquared