Bug Tracker

Changeset 2011

Show
Ignore:
Timestamp:
05/31/07 03:51:28 (1 year ago)
Author:
brandon.aaron
Message:

Fix for #923, #1136 and #1233

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/jquery/src/event/event.js

    r2010 r2011  
    6565        if (!this.global[type]) 
    6666            this.global[type] = []; 
    67         this.global[type].push( element ); 
     67        // Only add the element to the global list once 
     68        if (jQuery.inArray(element, this.global[type]) == -1) 
     69            this.global[type].push( element ); 
    6870    }, 
    6971 
     
    7375    // Detach an event or set of events from an element 
    7476    remove: function(element, type, handler) { 
    75         var events = element.$events, ret; 
     77        var events = element.$events, ret, index; 
    7678 
    7779        if ( events ) { 
     
    105107                    ret = null; 
    106108                    delete events[type]; 
     109                     
     110                    // Remove element from the global event type cache 
     111                    while ( this.global[type] && ( (index = jQuery.inArray(element, this.global[type])) >= 0 ) ) 
     112                        delete this.global[type][index]; 
    107113                } 
    108114            }