javascript - template - backbone.js-events, sabiendo lo que se hizo clic
backbonejs github (3)
En una de mis clases de vista de backbone.js, tengo algo como:
...
events: {
''click ul#perpage span'' : ''perpage''
},
perpage: function() {
// Access the text of the span that was clicked here
// Something like: alert($(element).text())
},
...
porque mi marcado por página podría tener algo como:
<ul id="perpage">
<li><span>5</span></li>
<li><span>10</span></li>
</ul>
Entonces, ¿cómo puedo encontrar información sobre el elemento que causó el evento? ¿O en este caso, que se hizo clic?
Normalmente en un enlace de evento, solo usaría $(this)
, pero estoy bastante seguro de que las vistas de Backbone están configuradas para que siempre se refiera a la vista, así que intente esto:
perpage: function(ev) {
alert($(ev.target).text());
}
EDICIÓN REALMENTE TARDÍA : Probablemente quiera usar $(ev.currentTarget)
. Ver dicussion en la respuesta de pawlik a continuación
Puedes obtener cualquier atributo que desees. ev
funciona this
:
perpage: function(ev) {
console.log($(ev.target).attr(''name''));
}
ev.target
puede ser engañoso, debe usar ev.currentTarget
como se describe en http://www.quirksmode.org/js/events_order.html