Stephen Woodbridge wrote:
> Dmitrii 'Mamut' Dimandt wrote:
>   
>>   Mike Alsup wrote:
>>     
>>>> $.ajaxStart() is invoked for every ajax call that's made on the page.
>>>>
>>>> However, for one ajax call I need to display a "loading..." in one
>>>> place, for another ajax call - a "loading..." in another place and for
>>>> yet a third ajax call a "loading" in a third place.
>>>>
>>>> How can I do this in jQuery? Preferably, in one line (true to jQuery
>>>> spirit :)) ).
>>>>     
>>>>         
>>> You may want to use ajaxSend instead ajaxStart.  ajaxSend is passed
>>> the xhr and the settings object for the ajax call.  This should give
>>> you the context you need to figure out where the loading indicator
>>> should go.
>>>
>>> $().ajaxSend(function(e, xhr, settings) {
>>>     // your code
>>> });
>>>
>>> Mike
>>>
>>>   
>>>       
>> Still. This is still like a proctologist performing an eye surgery :)) 
>> Big thanks for the tip, though!
>>
>>     
>
> I think you need to define your problem in more detail if you want 
> concrete help with it.
>
> Like, how do you plan to identify and differentiate the different 
> "loading" locations and respective messages? How is the first, second 
> and third place identified in the DOM or in you code, or in your mind? 
> Do you have a metadata structure that defines these that can be used to 
> pull information from? etc. How do each of these separate ajax requests 
> get initiated? What would your code look like if you didn't have the 
> "loading" messages running.
>
> If you ask really abstract questions you should probably expect to get 
> abstract responses because we can only guess at your needs. I'm sure the 
> list will help if there is enough information.
>
> This sounds like an interesting problem that others might run into.
>
> -Steve
>
> _______________________________________________
> jQuery mailing list
> discuss@jquery.com
> http://jquery.com/discuss/
>
>   
For instance, I have an ajax-powered poll, an ajax-powered search and an
ajax-powered login form. I would rather have a "loading..." text to
appear in each of those components instead of a single "loading..."
somewhere on the page (like gmail does, for instance - i hate that :) ).

So I would really like to do something like:

function search()
{
    $.load(
       $("myid"),   
        url,
        params,  
       {
            onStart: function(){searchLoader.show();},
             onEnd: function(){searchLoader.hide();}
        }
    );
}


function pollSubmit()
{
    $.post(
       $.post(
            url,
            params,
       {
            onStart: function(){pollLoader.show();},
             onEnd: function(){pollLoader.hide();}
        }
         );
    )
}


etc...

I guess I'll have to write a plugin :))
_______________________________________________
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/

Reply via email to