JQuery Ajax control

Posted by Anycolor on Stack Overflow See other posts from Stack Overflow or by Anycolor
Published on 2010-06-07T12:09:55Z Indexed on 2010/06/07 12:12 UTC
Read the original article Hit count: 495

Filed under:
|

Everybody hi.

There is a problem with my own AJAX library, that I can't solve.

I have some block (#ajax-loading), that has events:

$('#ajax-loading')

.bind('ajaxStart', function() { $('#ajax-loading').show(); }) .bind('ajaxStop', function() { $('#ajax-loading').fadeOut(150); });

For running AJAX I have special method:

run: function(data, callback) {

if(this.request) { this.request.abort(); } this.request = $.getJSON(window.location.pathname, data , callback); }, So .request holds current AJAX request.

What do I want? My #ajax-loading block contains the button, than should Cancel current AJAX request. As I supposed, the function, making Cancel shoud contain:

abort: function() {

if(ajax.request) { this.request.abort(); $('#ajax-loading').fadeOut(150); } }

But, as I said, there is a problem: my AJAX request cancels, loading-block hides, but when another request starts, this block doesn't shows again.

It seems that when I abort AJAX request, the ajaxStop event doesn't happen. And when I run new request ajaxStart doesn't happen.

I think it can be connected with readyState or status field of XMLHttpRequest, or smth similar.

Could anyone help me with this or explain what's wrong.

PS: excuse my english, it's not my native language...

© Stack Overflow or respective owner

Related posts about jQuery

Related posts about AJAX