Voglio solo generare un evento quando un input cambia valore usando jQuery 1.7.2 e Backbone.js.Cercando di associare un callback passando la funzione si genera un errore
Attualmente ho il seguente (che funziona)
MyView: Backbone.View.extend({
initialize: function() {
this.colorInput = $("<input />", {
"id": "color",
"name": "color",
"value": this.model.get("color")
});
var self = this;
this.colorInput.on("change", function() {
self.changeColor();
});
},
changeColor: function() {
var color = this.colorInput.val();
this.model.set("color", color);
}
});
stavo cercando di fare il contrario dove ho appena passo nella mia funzione.
this.colorInput.on("change", this.changeColor, this);
Ma quando si cerca di fare in questo modo, si genera l'errore
((jQuery.event.special [handleObj.origType] || {}). Gestire || handleObj. gestore) .apply non è una funzione
.apply (matched.elem, args);
che io non sono in grado di capire. Qualche idea per cui questo modo non funziona?
+1, Sì, la stessa opinione qui. Ho anche problemi ad avere un esempio funzionante, l'elemento _onlive created_ DOM non sta attivando l'evento 'change', ho rinunciato perché non era un problema legato alla domanda. – fguillen
controlla la mia modifica, nel caso in cui io abbia torto – fguillen
@fguillen: ho annullato a metà la modifica, penso che '.on' stia facendo un' 'isPlainObject'] (http://api.jquery.com/jQuery.isPlainObject /) controlla il suo primo argomento per scegliere quale forma sta usando, il primo argomento non è una mappa di eventi quindi va con la prima forma di '.on' e stiamo cercando di chiamare un oggetto vista come un funzione. Stai riscontrando il problema del "cambiamento non viene attivato fino a quando non si attiva la messa a fuoco"? –