Tengo una vista.Cómo obtener el elemento que desencadenó el evento mediante el controlador de eventos de backbone
//define View
var CreatePollView = Backbone.View.extend({
events: {
"click #addOption": "addOption",
"change .dynamicInput": "changeInputs"
},
initialize: function() {
_.bindAll(this, "render", "addOption", "changeInputs");
this.model.bind('change', this.render);
},
changeInputs: function() {
var newVal = $(this).val(); // this throws exception in jquery script
this.model.set("Subject", { Subject: newVal });
}, ....
¿Cómo puedo acceder al elemento (se trata de un elemento de entrada) en cuyo caso el cambio fue provocado?
+1 para la explicación adicional en _.bindAll realmente interesante que a veces todavía lucha con estas ataduras :) – Sander
dentro de su método 'changeInputs', puede obtener el elemento específico que se cambió al llamar a' $ (e.currentTarget) 'o' $ (e.target) 'como sugirió Brian, según sus necesidades. 'e' es un objeto jquery event args, así que lee la documentación de jquery para entender el diff. –
gracias chicos @Sander. Buena explicación. Parece una forma adecuada de hacerlo. Mientras tanto logré ponerlo en funcionamiento, pero realmente no entiendo de dónde viene la colección de argumentos ... vea el código a continuación changeInputs: function() { var newVal = arguments [0] .srcElement. valor; this.model.set ("Asunto", {Asunto: newVal}); }, – Tom