If no listeners are registered, triggerEvent does nothing now.

This commit is contained in:
ahocevar
2012-06-25 06:30:54 +02:00
parent 87459deb65
commit f962b78caa

View File

@@ -248,20 +248,23 @@ ol.event.Events.prototype.unregister = function(type, listener, opt_scope,
* an 'object' property referencing this Events instance. * an 'object' property referencing this Events instance.
* *
* @return {boolean} The last listener return. If a listener returns false, * @return {boolean} The last listener return. If a listener returns false,
* the chain of listeners will stop getting called. * the chain of listeners will stop getting called. Returns undefined if
* called for an event type that has no listeners.
*/ */
ol.event.Events.prototype.triggerEvent = function(type, opt_evt) { ol.event.Events.prototype.triggerEvent = function(type, opt_evt) {
var returnValue, var returnValue;
listeners = goog.events.getListeners(this, type, true) if (this.listenerCount_[type] > 0) {
var listeners = goog.events.getListeners(this, type, true)
.concat(goog.events.getListeners(this, type, false)); .concat(goog.events.getListeners(this, type, false));
if (arguments.length === 1) { if (arguments.length === 1) {
opt_evt = {'type': type}; opt_evt = {'type': type};
} }
opt_evt['object'] = this.object_; opt_evt['object'] = this.object_;
for (var i=0, ii=listeners.length; i<ii; ++i) { for (var i=0, ii=listeners.length; i<ii; ++i) {
returnValue = listeners[i].handleEvent(opt_evt); returnValue = listeners[i].handleEvent(opt_evt);
if (returnValue === false) { if (returnValue === false) {
break; break;
}
} }
} }
return returnValue; return returnValue;