gpt4 book ai didi

backbone.js - 将 .on() 用于 Backbone 集合上的多个事件时获取事件名称。

转载 作者:行者123 更新时间:2023-12-04 21:47:50 26 4
gpt4 key购买 nike

使用 .on() 将多个事件绑定(bind)到 Backbone 集合时,我如何知道在 Backbone 集合上触发了什么事件?有关说明,请参见以下示例。 (另见 jsFiddle:http://jsfiddle.net/PURAU/3/)

var Car = Backbone.Model.extend({
nrOfWheels: 4,
color: 'red',
speed: 'slow'
});

var Garage = Backbone.Collection.extend({
model: Car
});

var myGarage = new Garage(),
myCar = new Car();

myGarage.on('add change reset', function() {
// How do I know what event was triggered?
console.log('add change reset', arguments);
});

myGarage.on("all", function() {
// In here, the name of the event is the first argument.
console.log('all', arguments);
});

// Trigger add
myGarage.add(myCar);

// Trigger change
myCar.set('speed', 'fast');

// Trigger reset
myGarage.reset();

最佳答案

如果我们想要每个事件的特定操作,最有序的方法是监听每个事件,如果您希望在发生任何更改时拥有一个整体更改监听器,请在监听器内部调用它并自己指定事件名称。

myGarage.on('add', function() {
yourGlobalFunction(arguments, 'add');
//specific actions for add
});
myGarage.on('change', function() {
yourGlobalFunction(arguments, 'change');
//specific actions for change
});
myGarage.on('reset', function() {
yourGlobalFunction(arguments, 'reset');
//specific actions for reset
});

function yourGlobalFunction(prevArguments, eventName){
log(prevArguments, eventName);
}

关于backbone.js - 将 .on() 用于 Backbone 集合上的多个事件时获取事件名称。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11307002/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com