X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Fevent.js;h=8529d1371f25d8eb0de2dca5e0a86fce61776b28;hb=a27b5d0468acc5dd8cdfcbff9464546b353e3c04;hp=bcfd0452cc9bc70e39cde679b9021f2d2c56d2c4;hpb=abb055bb498c4938b8663eb37c98e9f9e8fd8c9e;p=jquery.git diff --git a/src/event.js b/src/event.js index bcfd045..8529d13 100644 --- a/src/event.js +++ b/src/event.js @@ -1,6 +1,6 @@ /* * A number of helper functions used for managing events. - * Many of the ideas behind this code orignated from + * Many of the ideas behind this code originated from * Dean Edwards' addEvent library. */ jQuery.event = { @@ -66,7 +66,7 @@ jQuery.event = { // Check for a special event handler // Only use addEventListener/attachEvent if the special // events handler returns false - if ( !jQuery.event.special[type] || jQuery.event.special[type].setup.call(elem) === false ) { + if ( !jQuery.event.special[type] || jQuery.event.special[type].setup.call(elem,data) === false ) { // Bind the global event handler to the element if (elem.addEventListener) elem.addEventListener(type, handle, false); @@ -168,7 +168,10 @@ jQuery.event = { if ( !elem ) { // Only trigger if we've ever bound an event for it if ( this.global[type] ) - jQuery("*").add([window, document]).trigger(type, data); + jQuery.each( jQuery.cache, function(){ + if ( this.events && this.events[type] ) + jQuery.event.trigger( type, data, this.handle.elem ); + }); // Handle triggering a single element } else { @@ -367,9 +370,9 @@ jQuery.event = { }, mouseenter: { - setup: function() { + setup: function( data ) { if ( jQuery.browser.msie ) return false; - jQuery(this).bind("mouseover", jQuery.event.special.mouseenter.handler); + jQuery(this).bind("mouseover", data, jQuery.event.special.mouseenter.handler); return true; }, @@ -389,9 +392,9 @@ jQuery.event = { }, mouseleave: { - setup: function() { + setup: function( data ) { if ( jQuery.browser.msie ) return false; - jQuery(this).bind("mouseout", jQuery.event.special.mouseleave.handler); + jQuery(this).bind("mouseout", data, jQuery.event.special.mouseleave.handler); return true; }, @@ -600,6 +603,9 @@ var withinElement = function(event, elem) { // Prevent memory leaks in IE // And prevent errors on refresh with events like mouseover in other browsers // Window isn't included so as not to unbind existing unload events -jQuery(window).bind("unload", function() { - jQuery("*").add(document).unbind(); -}); +jQuery( window ).bind( 'unload', function(){ + for ( var id in jQuery.cache ) + // Skip the window + if ( id != 1 && jQuery.cache[ id ].handle ) + jQuery.event.remove( jQuery.cache[ id ].handle.elem ); +});