Показать сообщение отдельно
  #1 (permalink)  
Старый 08.10.2011, 22:23
Интересующийся
Посмотреть профиль Найти все сообщения от gordon freeman
 
Регистрация: 29.09.2011
Сообщений: 11

Скрипт за баксы $$$$$
Кто напишет код добавления удаления событий за баксы?

нужно написать код в таком стиле


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) {
			
		}
	}
}


Кто уверен в своих силах?

Последний раз редактировалось gordon freeman, 08.10.2011 в 22:26.
Ответить с цитированием