backbone.js - 事件,知道被点击的内容

时间:2011-04-15 18:22:58

标签: javascript jquery backbone.js underscore.js

在我的一个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>

那么我怎样才能找到导致该事件的元素的信息呢?或者在这个例子中,点击了?

3 个答案:

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