浅谈jQuery事件绑定原理

2020-05-22 17:11:35易采站长站整理

      cache   = {};
win.data = function(elem, name, data){ 
    var id = elem[expando]; 
    if(!id) 
        id = elem[expando] = ++uuid; 
    if(name&&!cache[id]) 
        cache[id] = {}; 
    if(data !== undefined) 
        cache[id][name] = data; 
    return name 
        ? cache[id][name] 
        : id; 
}
win.removeData = function(elem, name){ 
    var id = elem[expando]; 
    if (name){ 
        if (cache[id]) { 
            delete cache[id][name]; 
            name = “”; 
            for ( name in cache[ id ] ) 
                break; 
            if ( !name ) 
                removeData(elem); 
        }  
    }else{   
            try { 
                delete elem[expando]; 
            } catch(e){ 
                if ( elem.removeAttribute ) 
                    elem.removeAttribute( expando ); 
            } 
            delete cache[id]; 
    } 
}

win.each = function( object, callback, args ) { 
    var name, i = 0, length = object.length; 
    if ( args ) { 
        if ( length === undefined ) { 
            for ( name in object ) 
                if ( callback.apply( object[ name ], args ) === false ) 
                    break;