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] || {})エラーをスローする。|| handleObjを扱います。ハンドラ).applyは関数ではありません。
.apply(matched.elem、args);私が把握することはできませんよ
。なぜこの方法がうまくいかないのでしょうか?
+1、はい、同じ意見がここにあります。私はまた、実際の例を持っている問題を抱えています、_onlive created_ DOM要素は 'change'イベントをトリガーしていません、それは質問に関連する問題ではなかったので、私はあきらめました。 – fguillen
私が間違っている場合に備えて、私の編集をチェックしてください。 – fguillen
@fguillen:私は編集を半押ししました。 '.on'は[' isPlainObject']を実行していると思います。(http://api.jquery.com/jQuery.isPlainObject /)最初の引数をチェックして、使用しているフォームを選択すると、最初の引数はイベントマップではなく、最初の '.on'形式になります。関数。あなたは、 "フォーカスが変わるまで変化は起こらない"という問題を持っていますか? –