Solo quiero activar un evento cuando una entrada cambia de valor usando jQuery 1.7.2 y Backbone.js.Intentar vincular una devolución de llamada al pasar la función arroja un error
Actualmente tengo el siguiente (que funciona)
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);
}
});
yo estaba tratando de hacerlo a la inversa en el que sólo tiene que pasar en mi función.
this.colorInput.on("change", this.changeColor, this);
Pero cuando se trata de hacerlo de esa manera, se lanza el error
((jQuery.event.special [handleObj.origType] || {}). || manejar handleObj. manejador) .aplicar no es una función
.apply (compatible.elem, args);
¿Qué no soy capaz de averiguar. ¿Alguna idea de por qué esta manera no funciona?
+1, Sí, la misma opinión aquí. También tengo problemas para tener un ejemplo de trabajo, el elemento _onlive created_ DOM no desencadena el evento 'change', me rendí porque no era un problema relacionado con la pregunta. – fguillen
verifique mi edición, en caso de que esté equivocado – fguillen
@fguillen: medio deshice la edición, creo que '.on' está haciendo un [' isPlainObject'] (http://api.jquery.com/jQuery.isPlainObject /) verifica en su primer argumento para elegir qué forma está usando, el primer argumento no es un mapa de eventos, así que va con la primera forma de '.on' y estamos tratando de llamar a un objeto de vista como un función. ¿Estás teniendo el problema "el cambio no se desencadena hasta que el foco cambie"? –