简体   繁体   English

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

[英]backbone.js - events, knowing what was clicked

In one of my backbone.js view classes, I have something like: 在我的一个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())
},

...

because my per page markup might have something like: 因为我的每页标记可能有类似于:

<ul id="perpage">
  <li><span>5</span></li>
  <li><span>10</span></li>
</ul>

So how exactly can I find information about the element that caused the event? 那么我怎样才能找到导致该事件的元素的信息呢? Or in this instance, that was clicked? 或者在这个例子中,点击了?

Normally on an event bind, you would just use $(this) , but I'm fairly sure Backbone views are set up so that this always refer to the view, so try this: 通常在事件绑定,你只需使用$(this) ,但我相当肯定骨干视图设置,让this总是引用视图,所以试试这个:

perpage: function(ev) {
   alert($(ev.target).text());
}

REALLY LATE EDIT : You probably want to use $(ev.currentTarget) . 真的很晚编辑 :你可能想要使用$(ev.currentTarget) See dicussion on pawlik's answer below 请参阅下面关于pawlik答案的讨论

ev.target可能会产生误导,你应该使用http://www.quirksmode.org/js/events_order.html上描述的ev.currentTarget

You can get any attribute you want. 您可以获得所需的任何属性。 ev works as this : ev工作原理this

perpage: function(ev) {
        console.log($(ev.target).attr('name'));
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM