jQuery 1.7.2とBackbone.jsを使用して、入力が値を変更したときにイベントを発生させたいだけです。
現在、私は以下を持っています(これは機能します)
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);
}
});
関数を渡すだけの別の方法でそれを実行しようとしていました。
this.colorInput.on("change", this.changeColor, this);
しかし、そのようにしようとすると、エラーがスローされます
((jQuery.event.special [handleObj.origType] || {})。handle || handleObj.handler).applyは関数ではありません
.apply(matched.elem、args);
(3332行目)
私はそれを理解することができません。この方法が機能しない理由はありますか?