2017-10-16 51 views
-2

我有這樣的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

回答

0

我想通了這個問題,我需要與每個連接的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)'指向當前元素 –