Ho una vista.Come ottenere l'elemento che ha attivato l'evento tramite il gestore di eventi di 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 });
}, ....
Come accedere all'elemento (è un elemento di input) su cui è stato attivato l'evento di modifica?
+1 per la spiegazione aggiunto _.bindAll veramente interessante che a volte ancora lottare con queste lega :) – Sander
all'interno del tuo metodo 'changeInputs', puoi ottenere l'elemento specifico che è stato cambiato chiamando' $ (e.currentTarget) 'o' $ (e.target) 'come suggerito da Brian, a seconda delle tue esigenze. 'e' è un oggetto args evento jquery, quindi leggi sulla documentazione di jquery per capire il diff. –
grazie ragazzi @Sandro. Buona spiegazione Sembra un modo corretto per farlo. Nel frattempo sono riuscito a farlo funzionare, ma non capisco da dove viene la collezione di argomenti .... vedi il codice sottostante changeInputs: function() { var newVal = arguments [0] .srcElement. valore; this.model.set ("Subject", {Subject: newVal}); }, – Tom