Delai (setTimeout) dans un toggle() rempli d'ajax
Bonjour à tous!
Une petite question rapide: j'ai un bouton qui possède 4 états représentés par une image différente.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| $('.btn_mark_erreur').toggle(
function (){
//Etat 1
var id_erreur = $(this).parent().attr('erreur_num');
$(this).attr('title','Erreur réglée');
$(this).children('img').attr('src','img/erreur_ok.png');
},
function (){
//Etat 2
var id_erreur = $(this).parent().attr('erreur_num');
$(this).attr('title','Erreur en cours');
$(this).children('img').attr('src','img/erreur_encours.png');
},
function (){
//Etat 3
var id_erreur = $(this).parent().attr('erreur_num');
$(this).attr('title','Problème sur cette erreur');
$(this).children('img').attr('src','img/erreur_nok.png');
},
function (){
//Etat 0
var id_erreur = $(this).parent().attr('erreur_num');
$(this).attr('title','Marquer comme...');
$(this).children('img').attr('src','img/erreur_statut.png');
}
); |
J'aimerais maintenant ajouter une fonction AJAX par état mais j'aimerais qu'elle soit temporisée, pour éviter d'en faire 3 si on clic 3 fois sur le bouton pour atteindre l'Etat 3 par exemple...
J'ai pensé à ajouter dans chaque fonction de mon toggle() :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
setTimeout( function(){
$.ajax({
type: 'POST',
url: "i....",
dataType: ($.browser.msie) ? "text" : "xml",
data: .... ,
complete : function() {...},
});
}, 3000); |
Ma question: lors de clics successifs, les fonctions appelées par "l'état traversé" sont-elles arrêtées? Ma méthode est-elle viable?
Merci pour votre aide