karl, thanks for your help. you make it seem so easy...

On May 6, 10:33 pm, Karl Swedberg <[EMAIL PROTECTED]> wrote:
> Hi Bob,
>
> I'd probably just do this without the ajaxStart and ajaxStop methods.
> Try this:
>
> $("#contests ul li span a").toggle(
>     function(){
>           //store ref to toggling element for use in ajax callbacks...
>           var lnk = $(this);
>           var url_title = lnk.html();
>           lnk.html("loading..."); // just before the stuff is loaded
>           $(".contest-form-" + this.name).load(this.href, function() {
>               lnk.html(url_title); // after the stuff is loaded
>           }).show();
>           return false;
>     },
>     function(){
>           $(".contest-form-" + this.name).hide("fast");
>           return false;
>     }
> );
>
> --Karl
> _________________
> Karl Swedbergwww.englishrules.comwww.learningjquery.com
>
> On May 6, 2008, at 6:34 AM, bobh wrote:
>
>
>
> > I'm afraid the behaviour is still there using your code. I've updated
> > my example page with it.
>
> > On May 6, 12:25 am, Wizzud <[EMAIL PROTECTED]> wrote:
> >> The problem is the context of 'this' within the ajaxStart() and
> >> ajaxStop() functions.
>
> >> try this instead...
>
> >> $("#contests ul li span a").toggle(
> >>    function(){
> >>          //store ref to toggling element for use in ajax callbacks...
> >>          var lnk = $(this);
> >>          var url_title = lnk.html();
> >>          lnk.ajaxStart(function(){
> >>              lnk.html("loading...");
> >>            }).ajaxStop(function(){
> >>              lnk.html(url_title);
> >>            });
> >>          $(".contest-form-" + this.name).load(this.href).show();
> >>          return false;
> >>    },
> >>    function(){
> >>          $(".contest-form-" + this.name).hide("fast");
> >>          return false;
> >>    }
> >> );
>
> >> On May 5, 2:26 pm, bobh <[EMAIL PROTECTED]> wrote:
>
> >>> hi,
>
> >>> I'm trying to change the innerHtml of an anchor to "loading" for the
> >>> duration of an ajax load with this code:
>
> >>> $("#contests ul li span a").toggle(
> >>>        function(){
> >>>                var url_title = $(this).html();
> >>>                $(this).ajaxStart(function(){$
> >>> (this).html("loading...");}).ajaxStop(function(){$
> >>> (this).html(url_title);});
> >>>                $(".contest-form-" +
> >>> this.name).load(this.href).show();
> >>>                return false;
> >>>        },
> >>>        function(){
> >>>                $(".contest-form-" + this.name).hide("fast");
> >>>                return false;
> >>>        }
> >>> );
>
> >>> both the ajax load and the text replacing work fine. the problem
> >>> however is that all links that have been clicked are getting the
> >>> "loading" innerHtml. in stead of only the one that is clicked on.
> >>> for
> >>> clarification I've put an example page online 
> >>> here:http://allnighters.net/jq/
> >>> .
> >>> try clicking a few different links.
>
> >>> thanks

Reply via email to