2009-08-13 7 views
0

J'ai découvert quelque chose d'intéressant. J'utilise ajax dans une structure de carrousel pour ajouter plus d'éléments à la fin si nécessaire. Et ça semble aller très bien..ajaxComplete continue d'empiler

Ce serait l'appel ajax dans une fonction appelée ItemLoad():

$.ajax({ 
    type: "POST", 
    url: ajax_url, 
    data: args, 
    success: function(resp){ 
     $('#dumpster').append(resp); 
    } 
}); 

Une autre fonction appelle ItemLoad() lorsque le carrousel a atteint sa fin

itemLoad(); 

$slider.ajaxComplete(function() { 

    console.log("ajaxdone"); 

    //items get inserted into the DOM 

}); 

Quand je lance ce, Je reçois un "ajaxdone" à la première requête, puis deux à la seconde, puis trois ... en gros, les événements ajaxComplete s'empilent ou quelque chose de sorte que le code s'exécute plusieurs fois au lieu d'un seul.

QUI me manque?

Répondre

3

Vous continuez d'ajouter le même événement à la pile ajaxComplete à chaque fois dans l'événement itemLoad. Pas facile à dire car vous n'avez pas donné le script complet.

Liez l'événement ajaxComplete une fois dans doc ready et ne l'ajoutez pas à chaque fois.

+0

Oui, la liaison était le problème, l'a fait chaque fois qu'une demande était nécessaire. À votre santé! – GreenDude

Questions connexes