git.asbjorn.biz
/
jquery.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6618ff0
)
Make sure regular settings object is set as context for all Ajax requests, if none...
author
John Resig
<jeresig@gmail.com>
Sat, 16 Jan 2010 15:11:01 +0000
(10:11 -0500)
committer
John Resig
<jeresig@gmail.com>
Sat, 16 Jan 2010 15:11:01 +0000
(10:11 -0500)
src/ajax.js
patch
|
blob
|
history
test/unit/ajax.js
patch
|
blob
|
history
diff --git
a/src/ajax.js
b/src/ajax.js
index
3c199af
..
f1de0f8
100644
(file)
--- a/
src/ajax.js
+++ b/
src/ajax.js
@@
-530,7
+530,7
@@
jQuery.extend({
handleError: function( s, xhr, status, e ) {
// If a local callback was specified, fire it
if ( s.error ) {
handleError: function( s, xhr, status, e ) {
// If a local callback was specified, fire it
if ( s.error ) {
- s.error.call( s.context || window, xhr, status, e );
+ s.error.call( s.context || s, xhr, status, e );
}
// Fire the global callback
}
// Fire the global callback
diff --git
a/test/unit/ajax.js
b/test/unit/ajax.js
index
582aa37
..
4f90126
100644
(file)
--- a/
test/unit/ajax.js
+++ b/
test/unit/ajax.js
@@
-95,7
+95,7
@@
test("jQuery.ajax() - abort", function() {
});
test("Ajax events with context", function() {
});
test("Ajax events with context", function() {
- expect(6);
+ expect(14);
stop();
var context = document.createElement("div");
stop();
var context = document.createElement("div");
@@
-104,8
+104,16
@@
test("Ajax events with context", function() {
equals( this, context, e.type );
}
equals( this, context, e.type );
}
- function callback(){
- equals( this, context, "context is preserved on callback" );
+ function callback(msg){
+ return function(){
+ equals( this, context, "context is preserved on callback " + msg );
+ };
+ }
+
+ function nocallback(msg){
+ return function(){
+ equals( typeof this.url, "string", "context is settings on callback " + msg );
+ };
}
jQuery('#foo').add(context)
}
jQuery('#foo').add(context)
@@
-116,20
+124,36
@@
test("Ajax events with context", function() {
jQuery.ajax({
url: url("data/name.html"),
jQuery.ajax({
url: url("data/name.html"),
- beforeSend: callback,
- success: callback,
- error: callback,
+ beforeSend: callback("beforeSend"),
+ success: callback("success"),
+ error: callback("error"),
complete:function(){
complete:function(){
- callback.call(this);
- setTimeout(proceed, 300);
+ callback("complete").call(this);
+
+ jQuery.ajax({
+ url: url("data/404.html"),
+ context: context,
+ beforeSend: callback("beforeSend"),
+ error: callback("error"),
+ complete: function(){
+ callback("complete").call(this);
+
+ jQuery('#foo').add(context).unbind();
+
+ jQuery.ajax({
+ url: url("data/404.html"),
+ beforeSend: nocallback("beforeSend"),
+ error: nocallback("error"),
+ complete: function(){
+ nocallback("complete").call(this);
+ start();
+ }
+ });
+ }
+ });
},
context:context
});
},
context:context
});
-
- function proceed(){
- jQuery('#foo').add(context).unbind();
- start();
- }
});
test("jQuery.ajax() - disabled globals", function() {
});
test("jQuery.ajax() - disabled globals", function() {