]> source.dussan.org Git - jquery.git/commitdiff
Makes sure options.context is used as the context for global ajax events only if...
authorjaubourg <j@ubourg.net>
Mon, 31 Jan 2011 16:23:36 +0000 (17:23 +0100)
committerjaubourg <j@ubourg.net>
Mon, 31 Jan 2011 16:40:26 +0000 (17:40 +0100)
src/ajax.js

index 4258b674428a68f5954fac63dc4f6bfa26134261..11eacee7190e92cf69ee3dc3ed724a9bb13a3afe 100644 (file)
@@ -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(),