Попытка связать обратный вызов путем передачи функции приводит к ошибке.

Я просто хочу запустить событие, когда ввод изменяет значение, используя jQuery 1.7.2 и Backbone. js.

В настоящее время у меня есть следующее (работает):

MyView: Backbone.View.extend({
  initialize: function() {

    this.colorInput = $("", {
         "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(сопоставленный.элемент, аргументы);

( строка 3332)

Что я не могу понять. Есть идеи, почему этот способ не работает?

5
задан Brandon 13 June 2012 в 21:30
поделиться