J'ai une fonction que j'ai besoin de réutiliser souvent. Le problème se produit lorsque je charge une autre page dans la page en cours, la fonction se déclenche deux fois. J'ai essayé cette solution mais je n'ai pas réussi à l'obtenir (Disable jquery function after 1 click, to prevent multiple executions). Des solutions pour empêcher la fonction de tirer plusieurs fois pendant qu'une demande est faite? La fonction devrait seulement se déclencher une fois par clic.Empêche l'exécution de la fonction jQuery pendant l'exécution de la requête
(function($) {
$.fn.likeclick = function(thiss, key) {
var $this = thiss;
var pid=key;
if ($this.hasClass('addd')) {
$.post("/blah.php?id="+pid, function(data) {
if (data=="ok"){
$this.removeClass('addd').addClass('rem');
$('.ccount#'+pid).html(function(i,val) {
return (parseFloat(val) + 1).toFixed(0);
});
}
});
} else {
$.post("/blah1.php?id="+pid, function(data) {
if (data=="okk"){
$this.removeClass('rem').addClass('addd');
$('.ccount#'+pid).html(function(i,val) {
return (parseFloat(val) - 1).toFixed(0);
});
}
});
}
};
})(jQuery);
Utilisation:
<div class="like addd"></div>
$('.like').click(function() {
likeclick($(this),this.id);
});
Il semble que cela devrait fonctionner pour votre cas. –
"charger une autre page dans la page en cours" - ce qui signifie une sorte d'ajax obtenir? Si oui, que faites-vous après la requête ajax? ce serait plus facile si vous publiez tout le code pertinent. – darshanags