2016-06-13 1 views
0

J'ai vu quelques-unes de ces questions postées ici mais aucun d'entre eux ne fonctionne pour moi. J'ai un bouton favori que je voudrais que mes utilisateurs pressent aux choses préférées. La requête ajax fonctionne très bien et le favori est stocké dans la base de données mais je ne peux l'utiliser qu'une seule fois puis je dois actualiser la page pour fav/unfav l'élément. Le code du bouton est:Ajax demande à php ne fonctionne qu'une fois par pageload

<div id="fav-icon"> 
    <?php 
    // Function checks if user has fav'd the item. 
    $isFav = favourite($user->id) ? 'un-fav' : 'fav'; 
    ?> 
    <i id="<?php echo $item->id; ?>" class="<?php echo $isFav; ?>"><span class="font-12 fa fa-heart"></span></i> 
</div> 

Jquery/Ajax

$('.fav').click(function(e){ 
    var con = $(this).attr('id'); 
    $.ajax({ 
     url: 'fav.php', 
     type: 'POST', 
     async: true, 
     data:{ 
     'fav' : con 
     }, 
     success:function(){ 
     $('#fav-icon').load(document.URL + ' #fav-icon'); 
     } 
    }); 
    }); 

    $('.un-fav').click(function(e){ 
    var con = $(this).attr('id'); 
    $.ajax({ 
     url: 'fav.php', 
     type: 'POST', 
     async: true, 
     data:{ 
     'fav' : con 
     }, 
     success:function(){ 
     $('#fav-icon').load(document.URL + ' #fav-icon'); 
     } 
    }); 
    }); 

Alors cela fonctionne, mais une seule fois! J'ai essayé deux fonctions différentes pour essayer faire ce travail, y compris:

$('.fav').live('click', function(e) { 

Quelqu'un peut-il me dire où je me trompe et la bonne méthode pour obtenir mon bouton pour travailler plusieurs fois?

+0

vous sont en train de changer le statut de fav à écart défavorable/FAV dans écart défavorable le fichier ajax? –

+0

non je ne fais que rafraîchir la div avec la fonction php pour vérifier si la classe d'objet devrait être fav/un-fav. – ShiggyDooDah

Répondre

2

Utilisez $(document).on() cliquez sur événement

$(document).on('click','.fav', function(e) { 
... 
}); 
+0

Merci cela fonctionne un régal! Encore un problème, l'icône du cœur semble se déplacer légèrement vers la droite quand on clique dessus ... Je vais faire quelques recherches et essayer de comprendre. Merci pour l'aide!! – ShiggyDooDah