Ich möchte nur ein Ereignis auslösen, wenn eine Eingabe den Wert mithilfe von jQuery 1.7.2 und Backbone.js ändert.Der Versuch, einen Rückruf durch Übergabe der Funktion zu binden, löst einen Fehler aus.
Zur Zeit habe ich die folgende (das funktioniert)
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);
}
});
Ich habe versucht, es in die andere Richtung zu tun, wo ich in meiner Funktion nur passieren.
this.colorInput.on("change", this.changeColor, this);
Aber wenn man versucht, es so zu tun, wirft er den Fehler
((jQuery.event.special [handleObj.origType] || {}). handleObj || behandeln. Handler) .apply ist keine Funktion
.apply (matched.elem, args);
Was ich nicht in der Lage bin, um herauszufinden. Irgendwelche Ideen, warum dieser Weg nicht funktioniert?
+1, Ja, gleiche Meinung hier. Ich habe auch Probleme, ein funktionierendes Beispiel zu haben, das _onlive created_ DOM-Element löst kein Change-Ereignis aus, ich gab auf, weil es kein Problem in Bezug auf die Frage war. – fguillen
check my edit, falls ich falsch liege – fguillen
@fguilllen: Ich habe die Bearbeitung halbiert, ich denke '.on' macht ein [' isPlainObject'] (http://api.jquery.com/jQuery.isPlainObject /) Überprüfen Sie das erste Argument, um zu wählen, welche Form es verwendet, das erste Argument ist keine Ereignis-Map, also geht es mit der ersten Form von '.on' und wir versuchen wieder, ein View-Objekt wie a aufzurufen Funktion. Haben Sie das Problem "Änderung wird nicht ausgelöst, bis sich der Fokus ändert"? –