2010-09-01 6 views
-1

J'essaie de créer un Facebook j'aime ne pas aimer la fonctionnalité en utilisant jQuery. J'ai le problème suivant. Lorsque l'appel ajax se déclenche, il affiche l'animation de chargement. Quand cela se termine l'animation reste là.jQuery Ajax facebook comme système

La seule façon dont il disparaît est quand j'utilise la même div pour le chargement et pour le résultat.

Jetez un oeil. Le code est assez simple: http://www.44db.com/demo/facebook-like/

Merci

PS: Voici le code dans le fichier load.php:

<?php 
$like = $_POST['like']; 
$value = $_POST['value']; 

    if ($like == 'like') : 
     echo 'clicked like'; 
    elseif ($like == 'notlike') : 
     echo 'clicked not like'; 
    endif; 

?> 

Répondre

0

Votre montrent des explicitement le « chargement ajax » sur l'événement click

$("#load").html(ajax_load); 

Vous devez désactivé quand la réponse arrive la réponse du serveur (Notez le $ ("# load"). Hide())

$("#good").click(function(event){ 
event.preventDefault(); 
$("#load").html(ajax_load); 
$.post(
loadUrl, 
{like: "like", value: likevalue}, 
function(responseText){ 
$("#load").hide(); 
$("#result").html(responseText); 
}, 
"html" 
); 
}); 

Au lieu de le faire explicitement, vous pouvez utiliser "événements ajax" et lier un rappel pour faire une action lorsque le ajax start et lorsque le ajax stops

0

Au lieu de faire $('#load').html(ajax_load);, il suffit de mettre la balise image dans le code HTML directement. Vous pouvez ensuite utiliser $('#load').show(); pour le faire apparaître, et $('#load').hide(); pour le masquer;

0

Utilisez cette fonction de rappel à la place:

function(responseText){ 
$("#result").html(responseText); 
$(".loading").remove(); 
} 
Questions connexes