mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
[REF] initial prototype of owl 2
This commit is contained in:
committed by
Aaron Bohy
parent
c06049076a
commit
e746574a1d
@@ -0,0 +1,42 @@
|
||||
// mockEventTarget.js
|
||||
|
||||
// copy the code from https://developer.mozilla.org/en-US/docs/Web/API/EventTarget#Simple_implementation_of_EventTarget
|
||||
var EventTarget = function() {
|
||||
this.listeners = {};
|
||||
};
|
||||
|
||||
EventTarget.prototype.listeners = null;
|
||||
EventTarget.prototype.addEventListener = function(type, callback) {
|
||||
if (!(type in this.listeners)) {
|
||||
this.listeners[type] = [];
|
||||
}
|
||||
this.listeners[type].push(callback);
|
||||
};
|
||||
|
||||
EventTarget.prototype.removeEventListener = function(type, callback) {
|
||||
if (!(type in this.listeners)) {
|
||||
return;
|
||||
}
|
||||
var stack = this.listeners[type];
|
||||
for (var i = 0, l = stack.length; i < l; i++) {
|
||||
if (stack[i] === callback){
|
||||
stack.splice(i, 1);
|
||||
return;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
EventTarget.prototype.dispatchEvent = function(event) {
|
||||
if (!(event.type in this.listeners)) {
|
||||
return true;
|
||||
}
|
||||
var stack = this.listeners[event.type].slice();
|
||||
|
||||
for (var i = 0, l = stack.length; i < l; i++) {
|
||||
stack[i].call(this, event);
|
||||
}
|
||||
return !event.defaultPrevented;
|
||||
};
|
||||
|
||||
// make the EventTarget global
|
||||
global.EventTarget = EventTarget
|
||||
Reference in New Issue
Block a user