diff options
author | John Resig <jeresig@gmail.com> | 2010-01-24 21:58:32 -0500 |
---|---|---|
committer | John Resig <jeresig@gmail.com> | 2010-01-24 21:58:32 -0500 |
commit | c639405c4d1ec462b032ccfb571a6c73212ba101 (patch) | |
tree | 41dd9dc07c65e2ed023f3daa72fc6fbc919ebc68 | |
parent | 6a3d0996edf2f8ba69f62c8c7c3eda07b674d81f (diff) | |
download | jquery-c639405c4d1ec462b032ccfb571a6c73212ba101.tar.gz jquery-c639405c4d1ec462b032ccfb571a6c73212ba101.zip |
Don't set the context in .load() as it stops the global ajax events from firing. Fixes #5922.
-rw-r--r-- | src/ajax.js | 7 | ||||
-rw-r--r-- | test/unit/ajax.js | 24 |
2 files changed, 28 insertions, 3 deletions
diff --git a/src/ajax.js b/src/ajax.js index 552d412f4..d92d26d15 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -45,18 +45,19 @@ jQuery.fn.extend({ } } + var self = this; + // Request the remote document jQuery.ajax({ url: url, type: type, dataType: "html", data: params, - context:this, complete: function( res, status ) { // If successful, inject the HTML into all the matched elements if ( status === "success" || status === "notmodified" ) { // See if a selector was specified - this.html( selector ? + self.html( selector ? // Create a dummy div to hold the results jQuery("<div />") // inject the contents of the document in, removing the scripts @@ -71,7 +72,7 @@ jQuery.fn.extend({ } if ( callback ) { - this.each( callback, [res.responseText, status, res] ); + self.each( callback, [res.responseText, status, res] ); } } }); diff --git a/test/unit/ajax.js b/test/unit/ajax.js index 4f901265e..cd3aba0a4 100644 --- a/test/unit/ajax.js +++ b/test/unit/ajax.js @@ -70,6 +70,30 @@ test("jQuery.ajax() - error callbacks", function() { }); }); +test(".load()) - 404 error callbacks", function() { + expect( 6 ); + stop(); + + jQuery('#foo').ajaxStart(function(){ + ok( true, "ajaxStart" ); + }).ajaxStop(function(){ + ok( true, "ajaxStop" ); + start(); + }).ajaxSend(function(){ + ok( true, "ajaxSend" ); + }).ajaxComplete(function(){ + ok( true, "ajaxComplete" ); + }).ajaxError(function(){ + ok( true, "ajaxError" ); + }).ajaxSuccess(function(){ + ok( false, "ajaxSuccess" ); + }); + + jQuery("<div/>").load("data/404.html", function(){ + ok(true, "complete"); + }); +}); + test("jQuery.ajax() - abort", function() { expect( 6 ); stop(); |