在Backbone中,如何创建单击事件是很明显的,但是我很难获得表示事件绑定到的选择器的实际元素。
我必须检查我是否有它或通过$(ev.target).parent()
上DOM,或者有一个更简单的方法?
标记的例子:
<div data-action="handle">
<div>This is the click event target.</div>
</div>
主干视图示例:
Backbone.View.extend({
events: {
'click [data-action="handle"]': 'handle'
},
handle: function(ev) {
// ev.target doesnt match up with the actual selector above
// How do I get $element such that:
// $element.data('action') === 'handle'
}
}
骨干网使用事件委托。如果你试图得到
ev.target
它会告诉你事件实际发生的地方,也就是内部DIV。
要使上述工作使用:-
ev.currentTarget
这将为您提供实际附加事件的元素。
另一个答案是捕获事件的元素可以通过this
获得。
如果你在回调中使用bindAll
,尽管