Dans l'une de mes classes d'affichage backbone.js, j'ai quelque chose comme:
...
events: {
'click ul#perpage span' : 'perpage'
},
perpage: function() {
// Access the text of the span that was clicked here
// Something like: alert($(element).text())
},
...
parce que mon balisage par page pourrait avoir quelque chose comme:
<ul id="perpage">
<li><span>5</span></li>
<li><span>10</span></li>
</ul>
Alors, comment puis-je trouver des informations sur l'élément qui a provoqué l'événement? Ou dans ce cas, qui a été cliqué?
Normalement, sur une liaison d'événement, vous utiliseriez simplement $(this)
, mais je suis à peu près sûr que les vues de backbone sont configurées de manière à ce que this
fasse toujours référence à la vue.
perpage: function(ev) {
alert($(ev.target).text());
}
VRAIMENT TARD EDIT : Vous voudrez probablement utiliser $(ev.currentTarget)
. Voir la discussion sur la réponse de pawlik ci-dessous
ev.target
peut être trompeur, vous devez utiliser ev.currentTarget
comme décrit sur http://www.quirksmode.org/js/events_order.html
Vous pouvez obtenir n'importe quel attribut que vous voulez. ev
fonctionne comme this
:
perpage: function(ev) {
console.log($(ev.target).attr('name'));
}