2017-10-16 1 views
-2

J'ai ce code HTMLImpossible de changer l 'icône de clic()

<li><button class="btn-link glyphicon @(I._tp_favourite == 0 ? "glyphicon-heart-empty" : "glyphicon-heart")" style="text-decoration:none;" onclick="Fav(@I._id, @I._tp_favourite)" id="FavButton"></button></li> 

Surclic je déclenche cette fonction

function Fav(id,fav) { 
     var url = '@Url.Action("_Fav", "my")'; 

     $.ajax({ 
      url: url, 
      type: 'POST', 
      data: { 
       id: id, 
       fav: fav 
      }, 
      success: function (data) { 
       $('#FavButton').toggleClass('btn-link glyphicon glyphicon-remove'); 
       alert(data); 
      }, 
      error: function (jqXHR) { // Http Status is not 200 
       alert(jqXHR.status); 
      } 
     }); 
    }; 

Cela devrait changer la classe de bouton pour btn-link glyphicon glyphicon-remove Mais ce n'est pas, Ai-je besoin pour fixer une carte d'identité avec chaque id="FavButton"

Toutes les idées

Vive

+0

sont rendu vous ce bouton dans une boucle? – Shyju

+0

Salut Oui, et j'ai compris, je devais joindre l'ID avec de l'élément avec chaque élément dans la boucle 'id =" [email protected]_id "' et puis faire ce qui suit dans ma fonction sur Success '$ (' #FavButton_ '+ id) .removeClass (' btn-lien glyphicon glyphicon-coeur-vide '). AddClass (' btn-lien glyphicon glyphicon-removet '); ' – aliusman

+0

oui. Id doit être unique. Votre code dans OP générera des identifiants en double. Une autre option est d'utiliser javascript discret et '$ (this)' pour avoir accès au bouton sur lequel on a cliqué, – Shyju

Répondre

0

Je compris la question, je avais besoin de joindre l'ID avec chacun dans ma boucle

id="[email protected]_id"

puis procédez comme suit dans ma fonction sur le succès

$('#FavButton_' + id).removeClass('btn-link glyphicon glyphicon-heart-empty').addClass('btn-link glyphicon glyphicon-remove'); 
+2

Il vaut mieux se débarrasser de 'onclick' et utiliser [Javascript discret] (https://en.wikipedia.org/wiki/Unobtrusive_JavaScript) - alors c'est simplement '$ ('' button '). click (function() {' et '$ (this)' fait référence à l'élément courant –