Показать сообщение отдельно
  #5 (permalink)  
Старый 09.10.2011, 10:14
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

задавай вопросы

(function() {
    // короткое определение IE
    var ie = /*@cc_on@*/0;

    //последовательно исполняет все обработчики события для эл-та.
    function handleEvent(event) {
        
        // фиксируем событие для IE
        if(ie){
            
            event = window.event;
            
            if(!event.target) 
                event.target = event.srcElement;
            
            event.preventDefault = event.preventDefault || function(){this.returnValue = false}
            event.stopPropagation = event.stopPropagaton || function(){this.cancelBubble = true}
                
            // вычислить pageX/pageY
            if ( event.pageX == null && event.clientX != null ) {
                var html = document.documentElement, body = document.body;
                event.pageX = event.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0);
                event.pageY = event.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0);
            }

            // записать нажатую кнопку мыши в which для IE
            // 1 == левая; 2 == средняя; 3 == правая
            if ( !event.which && event.button ) {
              event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
            }
  
                
                
        }
        
        // все обработчики для текущего события
        var handlers = this.events[event.type];
        // последовательно исполняем их.
        for (var i in handlers) 
            handlers[i].call(this,event);
        
    };

    _$$ = {};
    _$$.$e = {
        add: function(elem, type, handler) {

            if (!addEvent.guid) addEvent.guid = 1;

            handler.$$guid = addEvent.guid++;

            if (!elem.events) elem.events = {};
            
            var handlers = elem.events[type];
            
            if (!handlers) {
                handlers = elem.events[type] = {};
                if (elem["on" + type]) handlers[0] = elem["on" + type];

            }


            handlers[handler.$$guid] = handler;
            elem["on" + type] = handleEvent;
        },
        remove: function(elem, type, handler) {
            if (elem.events && elem.events[type]) {
                delete elem.events[type][handler.$$guid];
            }
        }
    };

})();


_$$.$e.add( document.body, 'click', function(){alert('clicked')})
    _$$.$e.add( document.body, 'click', function(){alert('clicked two times')})
            _$$.$e.add( document.body, 'click', function(){alert('имя тега ?\n'+this.tagName)})
Ответить с цитированием