I like Ben Nadel's routine for handling this.
Essentially you create a wrapper around the jQuery .ajax function, and you can build in all kinds of things that happen for every ajax request in your application. One of those things is request tracking.
You'll see that in his getJSON
wrapper method, it takes an optional "name" parameter for the request name. This can be anything, it's just a key to identify where the request originated from. In your case, it would be supplied by each link click. If the name parameter exists, then he stores it in a tracking collection.
If another call comes in with the same request name, it is simply dropped. Once the original request returns, he clears the tracking flag for that request name.
This method is great for extending a lot of common functionality to all ajax requests in your application. I've created a multiple request handler that also allows you to specify the behaviour of new requests - whether it would abort any existing ones or just be dropped. This is useful when you want the latest request to be processed, like for autocompletes.