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

Сообщение от Gvozd Посмотреть сообщение
сколько платите?

Необходимое более подробное ТЗ, указывающее что именно вам не подходит в том решении, и что необходимо добавить?
10$ - 15$

можно использовать все материалы отсюда
http://javascript.ru/tutorial/events/crossbrowser
функциональность нужна такая же


но только переработать всю эту запуттаность в такой вид

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');});


имменно в такой вид
в первую очередь чтобы было понятно мне

код должен работать во всех браузерах как и тот что по ссылке выше

Вот например универсальный код

var _$$={
	$e:{
		add:function(obj, e, h) {
			if (obj.addEventListener) {
				obj.addEventListener(e, h, false);
			} else if (obj.attachEvent) {
				obj.attachEvent('on'+e, h);
			}
			else {
				obj['on'+e]=function() {
					h();
				};
			}
		},
		del:function(obj, e, h) {
			if (obj.removeEventListener) {
				obj.removeEventListener(e, h, false);
			} else if (obj.detachEvent) {
				obj.detachEvent('on'+e, h);
			}
			else {
				obj['on'+e]=null;
			}
		}
	}
}


но тут нельзя назначать новые обработчики к одному и тому же элементу и удалять старые

в том примере что по ссылке создается очень странный dump

elem.events = {
	  'click' : {
	    1 : function(e) { alert("Hi!") },
	    2 : function(e) { alert("I am clicked") }
	  },
	  'mouseover' : {
	    3 : function(e) { alert("Mouse over!") }
	  }
	}


а если допустим я одну и туже функцию назначу в качестве события двум разным элементам... а потом захочу из первого ее удалить?
не уверен что в том коде это прокатит

в общем вот так вот...
Ответить с цитированием