-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathevent.js
More file actions
44 lines (35 loc) · 1.27 KB
/
Copy pathevent.js
File metadata and controls
44 lines (35 loc) · 1.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Faye.Event = {
_registry: [],
on: function(element, eventName, callback, scope) {
var wrapped = function() { callback.call(scope) };
if (element.addEventListener)
element.addEventListener(eventName, wrapped, false);
else
element.attachEvent('on' + eventName, wrapped);
this._registry.push({
_element: element,
_type: eventName,
_callback: callback,
_scope: scope,
_handler: wrapped
});
},
detach: function(element, eventName, callback, scope) {
var i = this._registry.length, register;
while (i--) {
register = this._registry[i];
if ((element && element !== register._element) ||
(eventName && eventName !== register._type) ||
(callback && callback !== register._callback) ||
(scope && scope !== register._scope))
continue;
if (register._element.removeEventListener)
register._element.removeEventListener(register._type, register._handler, false);
else
register._element.detachEvent('on' + register._type, register._handler);
this._registry.splice(i,1);
register = null;
}
}
};
Faye.Event.on(Faye.ENV, 'unload', Faye.Event.detach, Faye.Event);