#7017 closed bug (duplicate)
Global Ajax Events ajaxSend, ajaxSuccess, ajaxError and ajaxComplete do not work
Reported by: | zorneck | Owned by: | |
---|---|---|---|
Priority: | undecided | Milestone: | |
Component: | ajax | Version: | 1.4.2 |
Keywords: | global ajax events | Cc: | |
Blocked by: | Blocking: |
Description
The global ajax events ajaxSend, ajaxSuccess, ajaxError and ajaxComplete do not work since version 1.4.0. The events ajaxStart and ajaxStop works fine.
Example:
$('body').ajaxSuccess(function() {
alert('test');
});
this do not work!
I hope it will be fixed until version 1.4.3
Attachments (3)
Change History (13)
comment:1 Changed 12 years ago by
Resolution: | → worksforme |
---|---|
Status: | new → closed |
comment:2 Changed 12 years ago by
Resolution: | worksforme |
---|---|
Status: | closed → reopened |
I currently use version 1.4.2. I tested these events in firefox 3.6.9 and in Chrome.
In the meantime I searched the source code of jQuery 1.4.2 for these events, and found, that they are called wrong, I think.
The working events ajaxStart and ajaxStop are called by e.g.: jQuery.event.trigger("ajaxStart");
The other global ajax events are called e.g.: trigger("ajaxSuccess");
I think the last example is the bug. Please test it, and you will see it.
comment:3 Changed 12 years ago by
Resolution: | → worksforme |
---|---|
Status: | reopened → closed |
No, that is to be expected - start and stop are different from the success/complete/error events.
As mentioned before, we already do test this and, in fact, have very good coverage: http://github.com/jquery/jquery/blob/master/test/unit/ajax.js
A specific test case will be required in order to examine this further.
comment:4 Changed 12 years ago by
Resolution: | worksforme |
---|---|
Status: | closed → reopened |
Ok, I found out, what the problem is, I set the context to this ('this' is in this case my object that makes the ajax call):
jQuery.ajax({
url: 'some_url.html', context: this
});
In this case the mentioned global ajax events will not work. Is this a bug, or should it be like this?
comment:5 Changed 12 years ago by
I can confirm this bug. jQuery 1.4.2 doesn't fire any ajax callbacks on Firefox 4 beta 6 while the older version 1.3.2 works fine. It also works fine on FF 3.6.10.
comment:6 Changed 12 years ago by
I added my test code, where you can see the problem. When you click the "Start Ajax Test" button the global events ajaxSend, ajaxSuccess, ajaxError and ajaxComplete will not fire. The reason for this is the changed context of the ajax call.
comment:7 Changed 12 years ago by
Here is my jsFiddle Test.
Run the test, click on "Start Ajax Test", and see that the global ajax events ajaxSend, ajaxSuccess, ajaxError and ajaxComplete do not work (no alert will be called).
comment:9 Changed 12 years ago by
Priority: | → undecided |
---|---|
Resolution: | → duplicate |
Status: | reopened → closed |
Do you have more details? They appear to work in all of your test cases.