From 485fa0c42a71b4decc9cb1ce08bb56efabcc76f3 Mon Sep 17 00:00:00 2001 From: jaubourg Date: Mon, 31 Jan 2011 17:23:36 +0100 Subject: [PATCH] Makes sure options.context is used as the context for global ajax events only if it's a DOM node. --- src/ajax.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ajax.js b/src/ajax.js index 4258b67..11eacee 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(), -- 1.7.10.4