为什么触发器的第二个参数作为对象到达?

时间:2011-08-17 18:47:08

标签: javascript backbone.js

没关系,我找到了答案。这是因为incScore函数的第一个参数是事件,而第二个事件是实际传递的参数。

我正在尝试增加测验对象的得分属性,但我遇到了一些困难。在用户正确回答问题后,我正在使用全局触发事件来增加分数:

global.trigger('incScore', 300);

以下是incScore功能:

incScore: function(change) {
  alert(JSON.stringify(change));
  this.set({
    score: this.get("score") + change
  });
},

我想将分数提高300分,所以我发送300作为触发方法的第二个参数。我认为它会将300传递给incScore函数,但它会传递某种对象。我打印出对象的内容,这是各种各样的垃圾。如何访问应该传递给函数的300?

1 个答案:

答案 0 :(得分:0)

首先,您应该观察incScore事件

initialize: function() {
    global.bind('incScore', _.bind(this.incScore, this));
},
incScore: function(event, score) {
    console.log(score)
}

如果你触发jquery事件,第一个参数将是事件对象,从第二个参数开始会有你的数据。 Link to jquery api