From: John Resig Date: Mon, 25 Jan 2010 06:08:24 +0000 (-0500) Subject: Make sure original context is maintained and not the deep extended one. Fixes #5924. X-Git-Url: http://git.asbjorn.biz/?p=jquery.git;a=commitdiff_plain;h=1a14a38ff77839b2a71fbc3f3c0890ebe62438c7 Make sure original context is maintained and not the deep extended one. Fixes #5924. --- diff --git a/src/ajax.js b/src/ajax.js index ee52ed8..4af502a 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -206,7 +206,7 @@ jQuery.extend({ var s = jQuery.extend(true, {}, jQuery.ajaxSettings, origSettings); var jsonp, status, data, - callbackContext = s.context || s, + callbackContext = origSettings && origSettings.context || s, type = s.type.toUpperCase(); // convert data if not already a string diff --git a/test/unit/ajax.js b/test/unit/ajax.js index 775523e..195fa27 100644 --- a/test/unit/ajax.js +++ b/test/unit/ajax.js @@ -180,6 +180,27 @@ test("Ajax events with context", function() { }); }); +test("jQuery.ajax context modification", function() { + expect(1); + + stop(); + + var obj = {} + + jQuery.ajax({ + url: url("data/name.html"), + context: obj, + beforeSend: function(){ + this.test = "foo"; + }, + complete: function() { + start(); + } + }); + + equals( obj.test, "foo", "Make sure the original object is maintained." ); +}); + test("jQuery.ajax() - disabled globals", function() { expect( 3 ); stop();