Javascript 如果我设置“的话会发生什么?”;“听一次”;为同一事件触发多次
使用主干时,如果我在视图中多次设置同一个侦听器(使用Javascript 如果我设置“的话会发生什么?”;“听一次”;为同一事件触发多次,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,使用主干时,如果我在视图中多次设置同一个侦听器(使用listenToOnce),它是为同一事件创建多个一次性侦听器,还是只覆盖一个 eventThatMightHappenMultipleTimes: function () { this.listenToOnce(this, 'someEvent', this.someEventHandler); }, ... foo: function () { this.trigger('someEvent'); } 我想确保我没有留
listenToOnce
),它是为同一事件创建多个一次性侦听器,还是只覆盖一个
eventThatMightHappenMultipleTimes: function () {
this.listenToOnce(this, 'someEvent', this.someEventHandler);
},
...
foo: function () {
this.trigger('someEvent');
}
我想确保我没有留下任何无用的侦听器。是的,它多次创建同一个侦听器。您可以轻松地测试它:
var SomeView = Backbone.View.extend({
initialize: function() {
this.listenToOnce(this, 'someEvent ', this.logEvent);
this.listenToOnce(this, 'someEvent ', this.logEvent);
this.listenToOnce(this, 'someEvent ', this.logEvent);
this.listenToOnce(this, 'someEvent ', this.logEvent);
},
logEvent: function() {
console.log("'someEvent' has been fired!");
}
});
var view = new SomeView();
view.trigger('someEvent');
这里是。是的,它多次创建同一个侦听器。您可以轻松地测试它:
var SomeView = Backbone.View.extend({
initialize: function() {
this.listenToOnce(this, 'someEvent ', this.logEvent);
this.listenToOnce(this, 'someEvent ', this.logEvent);
this.listenToOnce(this, 'someEvent ', this.logEvent);
this.listenToOnce(this, 'someEvent ', this.logEvent);
},
logEvent: function() {
console.log("'someEvent' has been fired!");
}
});
var view = new SomeView();
view.trigger('someEvent');
这里是。是的,它将为同一事件删除多个一次性侦听器。是的,它将为同一事件删除多个一次性侦听器