mirror of
https://github.com/Hopiu/fabric.js.git
synced 2026-04-11 09:50:59 +00:00
82 lines
No EOL
2 KiB
JavaScript
82 lines
No EOL
2 KiB
JavaScript
/**
|
|
* @namespace
|
|
*/
|
|
fabric.Observable = {
|
|
|
|
/**
|
|
* Observes specified event
|
|
* @method observe
|
|
* @depracated Since 0.8.34. Use `on` instead.
|
|
* @param {String} eventName
|
|
* @param {Function} handler
|
|
*/
|
|
observe: function(eventName, handler) {
|
|
if (!this.__eventListeners) {
|
|
this.__eventListeners = { };
|
|
}
|
|
// one object with key/value pairs was passed
|
|
if (arguments.length === 1) {
|
|
for (var prop in eventName) {
|
|
this.on(prop, eventName[prop]);
|
|
}
|
|
}
|
|
else {
|
|
if (!this.__eventListeners[eventName]) {
|
|
this.__eventListeners[eventName] = [ ];
|
|
}
|
|
this.__eventListeners[eventName].push(handler);
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Stops event observing for a particular event handler
|
|
* @method stopObserving
|
|
* @depracated Since 0.8.34. Use `off` instead.
|
|
* @param {String} eventName
|
|
* @param {Function} handler
|
|
*/
|
|
stopObserving: function(eventName, handler) {
|
|
if (!this.__eventListeners) {
|
|
this.__eventListeners = { };
|
|
}
|
|
if (this.__eventListeners[eventName]) {
|
|
if (handler) {
|
|
fabric.util.removeFromArray(this.__eventListeners[eventName], handler);
|
|
}
|
|
else {
|
|
this.__eventListeners[eventName].length = 0;
|
|
}
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Fires event with an optional options object
|
|
* @method fire
|
|
* @param {String} eventName
|
|
* @param {Object} [options]
|
|
*/
|
|
fire: function(eventName, options) {
|
|
if (!this.__eventListeners) {
|
|
this.__eventListeners = { };
|
|
}
|
|
var listenersForEvent = this.__eventListeners[eventName];
|
|
if (!listenersForEvent) return;
|
|
for (var i = 0, len = listenersForEvent.length; i < len; i++) {
|
|
// avoiding try/catch for perf. reasons
|
|
listenersForEvent[i](options || { });
|
|
}
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Alias for observe
|
|
* @method observe
|
|
* @memberOf fabric.Observable
|
|
*/
|
|
fabric.Observable.on = fabric.Observable.observe;
|
|
|
|
/**
|
|
* Alias for stopObserving
|
|
* @method off
|
|
*/
|
|
fabric.Observable.off = fabric.Observable.stopObserving; |