如何将元素变量添加到任何事件?我想做这样的事情: HTML代码:
<ul id="ul">
<li>
<a href="#" id="first">First</a>
<a href="#" id="second">Second</a>
<a href="#" id="third">Third</a>
</li>
</ul>
<ul>
<li>
<a href="#" id="dont-need-to-work">Fourth</a>
</li>
</ul>
和js:
var Any = Backbone.View.extend({
events: {
'click '+this.$el.find('a'): function (e) {
this.anyAction(e);
}
},
anyAction: function (event) {
console.log($( event.currentTarget ).attr('id'))
}
});
var view = new Any({
el: 'ul#ul',
})
我找到了一些选项,大部分是_events,但我需要将事件发送到方法。
http://jsfiddle.net/Bd3dQ/ 这是我的例子不起作用)
答案 0 :(得分:1)
你应该为这些html元素添加一个类:
<ul id="ul">
<li>
<a href="#" class="elemToClick" id="first">First</a>
<a href="#" class="elemToClick" id="second">Second</a>
<a href="#" class="elemToClick" id="third">Third</a>
</li>
</ul>
在您的视图中,附加一个侦听器 class
events: {
'click .elemToClick': 'anyAction'
}
答案 1 :(得分:1)
您应该在事件中添加函数名称并更改选择器:
events: {
'click a': 'anyAction'
},
anyAction: function (event) {
console.log($( event.currentTarget ).attr('id'))
}