在我的一个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>
那么我如何才能找到有关导致事件的元素的信息呢?或者在这种情况下,它被点击了?
通常在事件绑定上,您只需要使用 $(this)
,但我相当确定 Backbone 视图已设置为使 this
始终引用该视图,因此请尝试以下操作:
perpage: function(ev) {
alert($(ev.target).text());
}
真的晚了编辑:您可能想使用 $(ev.currentTarget)
。请参阅下面关于 pawlik 答案的讨论
ev.target
可能会产生误导,您应该按照 http://www.quirksmode.org/js/events_order.html 中的说明使用 ev.currentTarget
event.target
只为您提供点击的内容。
你可以得到任何你想要的属性。 ev
用作 this
:
perpage: function(ev) {
console.log($(ev.target).attr('name'));
}
不定期副业成功案例分享
delegateEvents([events])
定义的事件或将events
对象传递给Backbone.View.extend
(在幕后使用前一种方法)。这不适用于在初始化程序、渲染方法等中绑定的事件。