2010-07-18 6 views
1

J'utilise une requête $ .get pour obtenir des données et je les stocke dans un cookie. La requête get est exécutée lorsqu'un utilisateur clique sur un bouton. Ils suivraient alors un lien vers une autre page et les données stockées dans le cookie sont extraites et affichées sur la nouvelle page.Jquery - Ajax - fonction de rappel?

Malheureusement, certaines personnes sont assez vigoureuses avec leurs clics, la requête get s'exécute mais la page suivante apparaît avant qu'elle ne soit terminée. Cela provoque évidemment une erreur. Donc je veux coder quelque chose qui va désactiver le lien vers la page suivante jusqu'à ce que la demande d'obtention soit terminée, mais je ne sais pas comment.

C'est tout ce que j'ai pour le moment.

$.get(url, function(d) { 
        cp = $('textarea#txt_quote', d).html(); 
        z_cookie.set(topic_id, current_posts, '1'); 
       }); 

Répondre

0

Vous pouvez désactiver le lien en manipulant son événement click, comme ceci:

var link = $('selector to find <a> tag'); 
link.click(function() { return false; }); 


$.get(url, function(d) { 
    cp = $('textarea#txt_quote', d).html(); 
    z_cookie.set(topic_id, current_posts, '1'); 

    link.unbind('click'); 
}); 

Si vous le souhaitez, vous pouvez définir une variable dans le gestionnaire click, et, si elle a été définie, Accédez à la page après la fin de la requête AJAX, comme ceci:

location.href = link.attr('href'); 
+0

J'ai essayé quelque chose comme ça mais je n'ai pas réussi à le faire fonctionner, votre idée fonctionne parfaitement bien. Merci une tonne. – Pete