Вход Регистрация
Файл: sys/javascript/sources/plugins/event.js
Строк: 166
<?php
Event 
= (function() {

    var 
guid 0;
    
    function 
fixEvent(event) {
        
event event || window.event;
  
        if ( 
event.isFixed ) {
            return 
event;
        }
        
event.isFixed true;
  
        
event.preventDefault event.preventDefault || function(){
            
this.returnValue false;
        }
        
event.stopPropagation event.stopPropagaton || function(){
            
this.cancelBubble true;
        }
    
        if (!
event.target) {
            
event.target event.srcElement;
        }
  
        if (!
event.relatedTarget && event.fromElement) {
            
event.relatedTarget event.fromElement == event.target event.toElement event.fromElement;
        }
  
        if ( 
event.pageX == null && event.clientX != null ) {
            var 
html document.documentElementbody 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);
        }
  
        if ( !
event.which && event.button ) {
            
event.which = (event.button : ( event.button : ( event.button ) ));
        }
    
        return 
event;
    }  
  
    
/* Вызывается в контексте элемента всегда this = element */
    
function commonHandle(event) {
        
event fixEvent(event);
    
        var 
handlers this.events[event.type];

        for ( var 
g in handlers ) {
            var 
handler handlers[g];
            var 
ret handler.call(thisevent);
            if ( 
ret === false ) {
                
event.preventDefault();
                
event.stopPropagation();
            }
        }
    }
  
    return {
        
add: function(elemtypeshandler) {
            if (
elem.setInterval && ( elem != window && !elem.frameElement ) ) {
                
elem window;
            }
      
            if (!
handler.guid) {
                
handler.guid = ++guid;
            }
      
            if (!
elem.events) {
                
elem.events = {};
                
elem.handle = function(event) {
                    if (
typeof Event !== "undefined") {
                        return 
commonHandle.call(elemevent);
                    }
                }
            }
      
            
types DCMS.isArray(types)?types:[types];
            for (var 
i=0i<types.lengthi++){
                var 
type types[i];
                if (!
elem.events[type]) {
                    
elem.events[type] = {};        
      
                    if (
elem.addEventListener)
                        
elem.addEventListener(typeelem.handlefalse);
                    else if (
elem.attachEvent)
                        
elem.attachEvent("on" typeelem.handle);
                }
      
                
elem.events[type][handler.guid] = handler;
            
            }
        },
    
        
remove: function(elemtypehandler) {
            var 
handlers elem.events && elem.events[type];
      
            if (!
handlers) return;
      
            
delete handlers[handler.guid];
      
            for(var 
any in handlers) return ;
            if (
elem.removeEventListener)
                
elem.removeEventListener(typeelem.handlefalse);
            else if (
elem.detachEvent)
                
elem.detachEvent("on" typeelem.handle);
        
            
delete elem.events[type];
    
      
            for (var 
any in elem.events)
                return;
            try {
                
delete elem.handle;
                
delete elem.events
            } catch(
e) { // IE
                
elem.removeAttribute("handle");
                
elem.removeAttribute("events");
            }
        } 
    }
}());
?>
Онлайн: 0
Реклама