That worked like a charm!  I didn't realize I could pass an anonymous
function to setTimeout like that.  Thanks for the quick reply!


David

On Jan 4, 10:01 am, Michel Belleville <michel.bellevi...@gmail.com>
wrote:
> The simplest way to do this is to use the setTimeout method (straight JS)
> and give it an anonymous function as callback to trigger after given period.
>
> Something like this should do the trick :
>
> $('a.delayed').click(function() { // assuming these links all share the
> "delayed" class
> var clicked = $(this); // when setTimeout calls your anonymous function,
> "this" will point to something else entirely
>
> setTimeout(function () {
> window.location.href = clicked.attr('href'); // assuming you want to go
> wherever the link points to
>
> }, 1000);
>
> return false; // to prevent default action to be immediately triggered
>
> });
>
> Hope it helps.
>
> Michel Belleville
>
> 2010/1/4 david.vansc...@gmail.com <david.vansc...@gmail.com>:
>
> > I've been searching high and low on Google over the last hour looking
> > for this, but can't seem to find anything.  Maybe I'm using the wrong
> > search terms, but I'd think what I'm trying to accomplish is something
> > that's been done before.
>
> > What I'm looking to do is delay the action of a click for a set period
> > of time.  I have a list of links for download zip archives and when
> > you click on one of those links, I use the BlockUI plugin to show an
> > overlay with a message that tells the user their download will start
> > momentarily.  The reason this is done is so that I can fire off an
> > AJAX event that inserts a record into a database for download
> > tracking.  Ideally what I'd like to do is fire the AJAX event (which
> > should only take about .2 seconds to run) and then wait for 2 or 3
> > seconds before unblocking the UI and *then* letting the default action
> > of the click (offering up the zip archive) fire.
>
> > Any ideas how I might accomplish something like this?

Reply via email to