From: John Resig Date: Mon, 25 Jan 2010 02:58:32 +0000 (-0500) Subject: Don't set the context in .load() as it stops the global ajax events from firing.... X-Git-Url: http://git.asbjorn.biz/?p=jquery.git;a=commitdiff_plain;h=c639405c4d1ec462b032ccfb571a6c73212ba101 Don't set the context in .load() as it stops the global ajax events from firing. Fixes #5922. --- diff --git a/src/ajax.js b/src/ajax.js index 552d412..d92d26d 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("
") // 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 4f90126..cd3aba0 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("
").load("data/404.html", function(){ + ok(true, "complete"); + }); +}); + test("jQuery.ajax() - abort", function() { expect( 6 ); stop();