Make liveHandler to use jQuery.lastCloser and speed up internal sorting.
authorrkatic <robert.katic@gmail.com>
Sat, 7 Nov 2009 16:10:58 +0000 (00:10 +0800)
committerJohn Resig <jeresig@gmail.com>
Sat, 7 Nov 2009 16:37:05 +0000 (00:37 +0800)
src/event.js

index f9c5fae..fde5767 100644 (file)
@@ -743,15 +743,15 @@ function liveHandler( event ) {
 
        jQuery.each( jQuery.data( this, "events" ).live || [], function( i, fn ) {
                if ( fn.live === event.type ) {
-                       var elem = jQuery( event.target ).closest( fn.selector )[0];
+                       var elem = jQuery( event.target ).closest( fn.selector, event.currentTarget )[0];
                        if ( elem ) {
-                               elems.push({ elem: elem, fn: fn });
+                               elems.push({ elem: elem, fn: fn, closer: jQuery.lastCloser });
                        }
                }
        });
 
        elems.sort(function( a, b ) {
-               return jQuery.data( a.elem, "closest" ) - jQuery.data( b.elem, "closest" );
+               return a.closer - b.closer;
        });
 
        jQuery.each(elems, function() {