在我的一个backbone.js视图类中,我有类似的东西:
...
events: {
'click ul#perpage span' : 'perpage'
},
perpage: function() {
// Access the text of the span that was clicked here
// Something like: alert($(element).text())
},
...
因为我的每页标记可能包含以下内容:
<ul id="perpage">
<li><span>5</span></li>
<li><span>10</span></li>
</ul>
那么我怎样才能找到导致该事件的元素的信息呢?或者在这个例子中,点击了?
答案 0 :(得分:131)
通常在事件绑定时,你只需使用$(this)
,但我相当确定设置了Backbone视图,以便this
始终引用视图,所以试试这个:
perpage: function(ev) {
alert($(ev.target).text());
}
真的很晚编辑:您可能想要使用$(ev.currentTarget)
。请参阅以下关于pawlik答案的讨论
答案 1 :(得分:97)
ev.target
可能会产生误导,您应该使用http://www.quirksmode.org/js/events_order.html
ev.currentTarget
答案 2 :(得分:0)
您可以获得所需的任何属性。 ev
的作用为this
:
perpage: function(ev) {
console.log($(ev.target).attr('name'));
}