J'ai dans mon appli un processus ajax, qui tourne en boucle et doit d'arreter quand l'utilisateur clique sur un lien, voici le script ajax :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
27
28
29
30
31
32
33
<script type="text/javascript">
    function displayCredit(price, mode, selection){
        $.ajax({
            type: "POST",
            url: decodeURI("<?= $this->basepath(); ?>/distribution/displaycredit"),
            data: {
                price : price,
                mode : mode,
                selection: selection
            },
            error: function(){
                return false;
            },
            success: function(retour){
                if(retour.selection != null){
                    if(retour.statut == 'ok' && retour.price != null && retour.mode != null){ /* Command ok */
                        getUrl('<?= $this->url('distribution/processing',array('selection'=>$selection,'receipt'=>$receipt)); ?>');
                    }
                }
 
                var old_value = $('#amout_credit_hidden').val();
                if(old_value != retour.credit){
                    $("#amout_credit").html(retour.credit);
                    $("#amout_credit_hidden").val(retour.credit);
                    $("#amout_credit_hidden").trigger('change');
                }
 
                setTimeout("displayCredit('"+retour.price+"','"+retour.mode+"','"+retour.selection+"')",<?= $timer; ?>);
                return true;
            }
        });
    }
</script>
Mon script est appelé sur ma page de cette façon :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<script type="text/javascript">
    $(document).ready(function() {
        var display = displayCredit(null,null,null);
 
       // stopEvent();
    });
</script>
J'ai essayé plein de trucs mais je n'arrive pas à arrêter ce fichu timeout au clic !

J'ai essayé avant mon return true :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
$('.link').click(function() {
    clearTimeout(disCredit);
    return false;
});
 
var disCredit = setTimeout("displayCredit('"+retour.price+"','"+retour.mode+"','"+retour.selection+"')",<?= $timer; ?>);
 return true;
Mais rien n'y fait ... il continue de tourner !!!
Please help !