Links

Lists

Latest Updates

Ruby On Rails List
Python list
Advanced Java
The JavaScript List
Apache Users
Full Disclosure
Linux Security

Search the archives!


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Javascript] Stopping default action


  • From: mdougherty at pbp.com (Mike Dougherty)
  • Subject: [Javascript] Stopping default action
  • Date: Thu Mar 30 17:45:39 2006

I just had a reason to research this myself...

http://www.gerd-riesselmann.net/archives/2005/03/a-firefox-javascript-bug

Read the author's thoughts describing your problem, then see the first comment for the (obvious?) 
solution.  :)


On Thu, 30 Mar 2006 12:52:51 -0800
  Bill Moseley <moseley@xxxxxxxx> wrote:
> I'm moving an inline onclick to a registered event.  The event
> triggers an AJAX request.
> 
> The problem is that now the AJAX request AND the normal requests are
> made -- the default action still happens.
> 
> 
> This is what I had before on a <a href="/path/to/recent"> link:
> 
> onclick="new Ajax.Updater('my_div', '/path/to/recent', { onComplete: Behaviour.apply , method: 
>'get', requestHeaders: ['X-Ajax-Updater', 'ajax_table'] } ); return false;"
> 
> Which returns false to stop the default behavior (follow the link).
> That worked fine -- "my_div" is updated by the AJAX call.
> 
> 
> So, the new setup:
> 
> <a href="/path/to/recent" id="updater9">recent</a>
> 
> Then in <script> at the end of the page:
> 
>    updater( 'updater9', 'my_div', '/path/to/recent' );
> 
> And my javascript:
> 
> 
> function updater( linkID, target, url ) {
> 
>    var my_update = function(e) {
>        new Ajax.Updater( target, url,
>            {
>                onComplete: Behaviour.apply, /* not pretty */
>                method: 'get',
>                requestHeaders: ['X-Ajax-Updater', 'ajax_table']
>            });
>        Event.stop(e);  // Hey why won't the default behavior stop!!
>        return false;
>    }
> 
> 
>    Event.observe( linkID, 'click', my_update, 'false' );
> }
> 
>Firefox (and the request headers from the browsers) show that the
> ajax request is made, but also the normal href is followed.
> Shouldn't returning false stop the default behavior?
> 
> 
> Next question:  Is there a smarter way to do the "updater()"
> function?  I'm using a closure to save the "target" (the <div> that
> Ajax.Updater updates) for when the event finally happens.
> 
> 
> Thanks,
> 
> 
> -- 
> Bill Moseley
> moseley@xxxxxxxx
> 
> _______________________________________________
> Javascript mailing list
> Javascript@xxxxxxxxxx
> https://lists.LaTech.edu/mailman/listinfo/javascript
> 
> 
> 
> __________________________________________________________
> This message was scanned by ATX
> 3:53:19 PM ET - 3/30/2006