Files

63 lines
1.5 KiB
JavaScript
Raw Permalink Normal View History

2025-05-12 15:45:17 +00:00
/*
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);