96 votes

backbone.js - des événements, sachant ce qui a été cliqué

Dans un de mes backbone.js les classes d'affichage, 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 par page balise peut avoir quelque chose comme:

<ul id="perpage">
  <li><span>5</span></li>
  <li><span>10</span></li>
</ul>

Comment donc puis-je trouver des informations sur l'élément qui a provoqué l'événement? Ou dans ce cas, qui a été cliqué?

131voto

Jamie Wong Points 10858

Normalement sur un événement lier, il faudrait utiliser $(this), mais je suis assez sûr que la Dorsale points de vue sont mis en place afin qu' this toujours se référer à la vue, donc, essayez ceci:

perpage: function(ev) {
   alert($(ev.target).text());
}

VRAIMENT la FIN EDIT: Vous voudrez probablement utiliser $(ev.currentTarget). Voir les discussions sur pawlik la réponse ci-dessous

97voto

pawlik Points 2128

ev.target peut être trompeur, vous devez utiliser ev.currentTarget comme décrit sur http://www.quirksmode.org/js/events_order.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X