In einer meiner Backbone.js-Ansichtsklassen habe ich Folgendes:
...
events: {
'click ul#perpage span' : 'perpage'
},
perpage: function() {
// Access the text of the span that was clicked here
// Something like: alert($(element).text())
},
...
weil mein Markierungssatz pro Seite Folgendes haben kann:
<ul id="perpage">
<li><span>5</span></li>
<li><span>10</span></li>
</ul>
Wie genau kann ich Informationen zu dem Element finden, das das Ereignis verursacht hat? Oder in diesem Fall wurde das angeklickt?
Normalerweise würden Sie bei einer Ereignisbindung nur $(this)
verwenden, aber ich bin ziemlich sicher, dass die Backbone-Ansichten so eingerichtet sind, dass this
immer auf die Ansicht verweist.
perpage: function(ev) {
alert($(ev.target).text());
}
WIRKLICH LATE EDIT : Wahrscheinlich möchten Sie $(ev.currentTarget)
verwenden. Siehe die Diskussion zu pawliks Antwort unten
ev.target
kann irreführend sein, verwenden Sie ev.currentTarget
wie unter http://www.quirksmode.org/js/events_order.html beschrieben.
Sie können jedes gewünschte Attribut erhalten. ev
arbeitet als this
:
perpage: function(ev) {
console.log($(ev.target).attr('name'));
}