2009-03-28 9 views
3

J'utilise la méthode AJAX .post de jQuery:rappel jQuery ne pas être appelé

// completion toggling 
$('.item input').click(function() { 
    $.post('complete.php', {item: this.id}, function() { 
     $(this).parent().fadeOut('slow'); 
    }); 
}); 

Qu'est-ce que je fais mal ici? AJAX fonctionne comme l'enregistrement est mis à jour mais l'événement de rappel ne se produit jamais. Pas d'erreurs dans Firebug non plus.

Répondre

3

Je me demande si ce n'est pas un "ceci" différent à ce moment-là. Essayez d'utiliser une capture:

$('.item input').click(function() { 
    var tmp = this; 
    $.post('complete.php', {item: this.id}, function() { 
     $(tmp).parent().fadeOut('slow'); 
    }); 
}); 
+0

Elle est délimitée par les accolades - elle ne sera pas en conflit avec d'autres "tmp" ayant une portée similaire. –

+0

Oups! Quelque part, j'ai supprimé le commentaire de l'OP - il était "qui fonctionne, besoin de vérifier la portée" (ou quelque chose de similaire) –

+0

Cela est correct dans un rappel AJAX est généralement porté à la XMLHttpRequest plutôt que d'un élément particulier. –

Questions connexes