X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Fevent%2Fevent.js;fp=src%2Fevent%2Fevent.js;h=3b3294ba203dfab23fabf71b8e532c1f0ac86c06;hb=5c19701a89c4b56e130a213759eb035fb0c302dc;hp=3c5a1190da8b548923d22bde21b9a4594615886a;hpb=042a46386a4e5efe787f963245aa534663559838;p=jquery.git diff --git a/src/event/event.js b/src/event/event.js index 3c5a119..3b3294b 100644 --- a/src/event/event.js +++ b/src/event/event.js @@ -134,10 +134,13 @@ jQuery.event = { // Handle triggering a single element } else { - var val, ret, fn = jQuery.isFunction( element[ type ] || null ); + var val, ret, fn = jQuery.isFunction( element[ type ] || null ), + // Check to see if we need to provide a fake event, or not + evt = !data[0] || !data[0].preventDefault; // Pass along a fake event - data.unshift( this.fix({ type: type, target: element }) ); + if ( evt ) + data.unshift( this.fix({ type: type, target: element }) ); // Trigger the event if ( jQuery.isFunction( element.$handle ) ) @@ -147,6 +150,10 @@ jQuery.event = { if ( !fn && element["on"+type] && element["on"+type].apply( element, data ) === false ) val = false; + // Extra functions don't get the custom event object + if ( evt ) + data.shift(); + // Handle triggering of extra function if ( extra && extra.apply( element, data ) === false ) val = false;