Bug Tracker

Ticket #935: jquery_bug935.patch

File jquery_bug935.patch, 1.1 KB (added by jesse, 16 years ago)

Patch to fix Event data from being global

  • event.js

     
    1313                if ( jQuery.browser.msie && element.setInterval != undefined )
    1414                        element = window;
    1515
    16                 // if data is passed, bind to handler
    17                 if( data )
    18                         handler.data = data;
    19 
    2016                // Make sure that the function being executed has a unique ID
    2117                if ( !handler.guid )
    2218                        handler.guid = this.guid++;
    2319
     20                // if data is passed, bind to handler
     21                if( data != undefined ) {
     22                        // Create temporary function pointer to original handler
     23                        var fn = handler;
     24
     25                        // Create unique handler function, wrapped around original handler
     26                        handler = function() {
     27                                // Pass arguments and context to original handler
     28                                return fn.apply(this, arguments);
     29                        };
     30
     31                        // Store data in unique handler
     32                        handler.data = data;
     33                       
     34                        // Set the guid of unique handler to the same of original handler, so it can be removed
     35                        handler.guid = fn.guid;
     36                }
     37
    2438                // Init the element's event structure
    2539                if (!element.$events)
    2640                        element.$events = {};