[英]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.