【发布时间】:2013-01-10 00:16:48
【问题描述】:
在 Backbone 中,我正在使用新的 Backbone.listenTo 事件。我的一个实例将侦听器附加到三个不同的事件,例如:
this.listenTo(this._Collection, 'reset add change', this._setCollection);
当它应该被适当地调用并且那里没有问题时。我不知道如何找出触发了哪个事件。我可以使用以下方法访问 e 参数:
_setCollection: function(e) {
// Do fun stuff
}
问题在于e 参数仅发送集合的副本,并没有提及实际触发的事件。我试过e.type 和e.target 但这些对象不存在。这是来自 Chrome 开发工具的 e 对象的副本:
_byCid: Object
_byId: Object
_events: Object
add: Array[1]
change: Array[1]
remove: Array[1]
reset: Array[1]
__proto__: Object
_listenerId: "l16"
length: 3
models: Array[3]
如何找到触发的事件?
编辑:答案澄清:尽管标记的答案在技术上是正确的,正如 mu_is_too_short 所指出的,正确的答案是使用多个处理程序而不是执行这种类型的“诡计”
【问题讨论】:
标签: javascript backbone.js backbone-events backbone.js-collections