Русский
English

JavaScript: Додавання та видалення обробників подій

Я написав пару функцій, які полегшать життя.

Воно буде називатись «Мульти-функційна обробка подій».

Лістинг:


########
//Developed 5.08.2008 by Petkus Maksym
meinit = function(el,ev){//multy event initialization
el['on'+ev] = function(e)
{
e = (!e) ? window.event : e;
var ev = 'on'+e.type;
for(var l in this[ev].f){
this[ev].f[l](e);
}
}
el['on'+ev].f = Array();
};

addEvent = function(elem, eve, func,name){
if(!elem['on'+eve]){meinit(elem,eve);}
var mas = elem['on'+eve].f;
if(name)mas[name] = func;
else mas.push(func);
};

removeEvent=function(elem, eve, name){
if(elem['on'+eve].f[name])
delete elem['on'+eve].f[name];
}

addEvent(window,'resize',function(){sitemsg('hey')});
#######

Використання:

- Додавання функції до події:
addEvent(об’єкт,подія,функція-обробник, назва_для_збереження/*не обов’язковий параметр*/)

Приклади використання:

addEvent(d,'mousemove',getXY);
addEvent(window,'resize',function(){alert(‘hello’)},’hello’);

- Видалення функції з події:
removeEvent(об’єкт,подія, назва_для_збереження)

Приклади використання:

removeEvent (window,'resize',’hello’);

Автор: Петкус Максим; e-mail: me [АТ] petkus.info