私のbackbone.jsビュークラスの1つには、次のようなものがあります:
...
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)
を使用しますが、this
が常にビューを参照するようにBackboneビューが設定されていると確信しているので、これを試してください。
_perpage: function(ev) {
alert($(ev.target).text());
}
_
本当に遅い編集:おそらく$(ev.currentTarget)
を使いたいでしょう。以下のpawlikの回答の議論を参照してください
ev.target
は誤解を招く可能性があります。ev.currentTarget
http://www.quirksmode.org/js/events_order.html で説明されているとおり
必要な属性を取得できます。 ev
はthis
として機能します:
perpage: function(ev) {
console.log($(ev.target).attr('name'));
}