Кто напишет код добавления удаления событий за баксы?
нужно написать код в таком стиле
var _$$={
$e:{
add:function(elem, type, handler) {
},
remove:function(elem, type, handler) {
}
}
}
var $$e=_$$.$e;
запуск должен осуществляться так
$$e.add(document.getElementById("xxxsss"),'click',function(event) { alert('1');});
вот этот быдлокод
http://javascript.ru/tutorial/events/crossbrowser не копировать
-код должен работать во всех браузерах
-события должны выполняться по порядку их добавления
-если одному элементу добавляется несколько одинаковых событий, то все одинаковые должны игнорироваться
-и главное я должен разобраться в коде, поэтому каждая строка с комментарием
Небольшой пример как стиль но
не работающий
примерно вот так должно все выглядеть
var _$$={
$e:{
num:0,
dump:{},
add:function (elem, type, handler) {
var can=true;
if(this.dump[type]) {
for(var n in this.dump[type][elem]) {
if(this.dump[type][elem][n]==handler) {
can=false;
}
}
}
if(can) {
if(!this.dump[type]) {
this.dump[type]={};
}
if(!this.dump[type][elem]) {
this.dump[type][elem]={};
}
this.dump[type][elem][this.num]=handler;
this.num++;
var allhandl=function() {
for(var n in _$$.$e.dump[type][elem]) {
_$$.$e.dump[type][elem][n]();
}
}
if (elem.addEventListener) {
elem.addEventListener(type, allhandl, false);
} else if (elem.attachEvent) {
elem.attachEvent('on'+type, allhandl);
}
}
},
del:function (elem, type, handler) {
}
}
}
Кто уверен в своих силах?