Add JS files
This commit is contained in:
63
modules/EcmDocuments/j123.events.js
Executable file
63
modules/EcmDocuments/j123.events.js
Executable file
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
j123 -- JavaScript common library
|
||||
mail: sebastian.hanula@gmail.com
|
||||
www: http://www.hanula.com/lab/j123
|
||||
|
||||
j123 events library
|
||||
*/
|
||||
|
||||
j123.events = {
|
||||
Key : {
|
||||
MB_LEFT: 1,
|
||||
MB_RIGHT: 2,
|
||||
KEY_ESC: 27,
|
||||
KEY_RETURN: 13
|
||||
},
|
||||
__events : false,
|
||||
fix : function(e) {
|
||||
if (!e) e = window.event;
|
||||
if (e.target) {
|
||||
if (e.target.nodeType == 3) e.target = e.target.parentNode
|
||||
} else if (e.srcElement) {
|
||||
e.target = e.srcElement
|
||||
}
|
||||
if(j123.browser.isIE) e.button = e.button-1;
|
||||
|
||||
return e
|
||||
},
|
||||
|
||||
add: function(el,type,fn ) {
|
||||
if(!this.__events) this.__events = [];
|
||||
this.__events.push([el,type,fn]);
|
||||
|
||||
if(el.addEventListener) {
|
||||
el.addEventListener(type, fn,false);
|
||||
} else if(el.attachEvent) {
|
||||
if (!el._listeners) el._listeners = new Array();
|
||||
if (!el._listeners[type]) el._listeners[type] = new Array();
|
||||
|
||||
var applyFunc = function() {
|
||||
fn.apply(el, new Array());
|
||||
}
|
||||
el._listeners[type][fn] = applyFunc;
|
||||
el.attachEvent('on' + type, applyFunc);
|
||||
}
|
||||
},
|
||||
|
||||
remove:function(el,type, fn) {
|
||||
if(el.removeEventListener) {
|
||||
el.removeEventListener(type,fn,false);
|
||||
} else if(el.detachEvent) {
|
||||
if (el._listeners && el._listeners[type] && el._listeners[type][fn]) {
|
||||
el.detachEvent('on' + type, el._listeners[type][fn]);
|
||||
}
|
||||
}
|
||||
},
|
||||
unload : function(e) {
|
||||
if(j123.events.__events)
|
||||
for(var i=0;i<j123.events.__events;i++)
|
||||
j123.events.remove(j123.events.__events[i][0],j123.events.__events[i][1],j123.events.__events[i][2]);
|
||||
}
|
||||
};
|
||||
|
||||
j123.events.add(window,'unload',j123.events.unload);
|
||||
Reference in New Issue
Block a user