From: jaubourg Date: Mon, 31 Jan 2011 16:23:36 +0000 (+0100) Subject: Makes sure options.context is used as the context for global ajax events only if... X-Git-Tag: 1.5.1rc1~81 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=485fa0c42a71b4decc9cb1ce08bb56efabcc76f3;p=jquery.git Makes sure options.context is used as the context for global ajax events only if it's a DOM node. --- diff --git a/src/ajax.js b/src/ajax.js index 4258b6744..11eacee71 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -334,13 +334,17 @@ jQuery.extend({ var // Create the final options object s = jQuery.extend( true, {}, jQuery.ajaxSettings, options ), - // Callbacks contexts + // Callbacks context // We force the original context if it exists // or take it from jQuery.ajaxSettings otherwise // (plain objects used as context get extended) callbackContext = ( s.context = ( "context" in options ? options : jQuery.ajaxSettings ).context ) || s, - globalEventContext = callbackContext === s ? jQuery.event : jQuery( callbackContext ), + // Context for global events + // It's the callbackContext if one was provided in the options + // and if it's a DOM node + globalEventContext = callbackContext !== s && callbackContext.nodeType ? + jQuery( callbackContext ) : jQuery.event, // Deferreds deferred = jQuery.Deferred(), completeDeferred = jQuery._Deferred(),