无法更改图标上点击()
问题描述:
我有这样的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"
任何想法
干杯
答
我想通了这个问题,我需要与每个连接的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)'指向当前元素 –
以下是一些您呈现这个按钮在一个循环内? – Shyju
嗨是的,我想通过循环id =“[email protected]_id”'''''''''''',然后在我的函数中执行下面的代码'$(' ('btn-link glyphicon glyphicon-removet');' – aliusman
是的。 Id必须是独一无二的。您在OP中的代码将生成重复的ID。另一个选择是使用不引人注意的javascript和'$(this)'来访问被点击的按钮, – Shyju