无法更改图标上点击()

问题描述:

我有这样的HTML无法更改图标上点击()

<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> 

的OnClick我触发这个功能

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); 
      } 
     }); 
    }; 

这应该按钮类更改为btn-link glyphicon glyphicon-remove但它不是,我是否需要附加的ID与每个id="FavButton"

任何想法

干杯

+0

以下是一些您呈现这个按钮在一个循环内? – Shyju

+0

嗨是的,我想通过循环id =“[email protected]_id”'''''''''''',然后在我的函数中执行下面的代码'$(' ('btn-link glyphicon glyphicon-removet');' – aliusman

+0

是的。 Id必须是独一无二的。您在OP中的代码将生成重复的ID。另一个选择是使用不引人注意的javascript和'$(this)'来访问被点击的按钮, – Shyju

我想通了这个问题,我需要与每个连接的ID在我的循环

id="[email protected]_id"

,然后做我的成功

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

更好地摆脱'onclick'并使用[Unobtrusive Javascript](https://en.wikipedia.org/wiki/Unobtrusive_JavaScript) - 然后它只是'$(''button')。click(function(){'和'$(this)'指向当前元素 –