$('button[id="btnLike"]').on('click', function (e) {
var userId = $("#logedUserId").val();
var postId = $(this).data('id');
if ($(this).toggleClass('btn btn-default')) {
$(this).toggleClass('btn btn-info');
$.ajax({
url: '@Url.Action("UpdatePostThumbsUp", "Main")',
type: 'POST',
data: { 'userId': userId, 'postId': postId, 'flag': true },
cache: false
});
}
else {
$(this).toggleClass('btn btn-default');
$.ajax({
url: '@Url.Action("UpdatePostThumbsUp", "Main")',
type: 'POST',
data: { 'userId': userId, 'postId': postId, 'flag': false },
cache: false
});
}
});
我不知道为什么它只使用了if子句(if子句是工作成功,意味着控制器(MVC)中的方法UpdatePostThumbsUp正常工作),但不能使用else子句。 像html中的按钮:
<button type="button" id="btnLike" class="btn btn-default" style="font-size:11px;padding:3px 6px" data-id="@p.PostId">
<span class="glyphicon glyphicon-thumbs-up"></span> Like
</button>
答案 0 :(得分:0)
此$(this).toggleClass('btn btn-default')
将始终返回 jQuery ,转换为boolean
true ,因此您将始终转到if分支
尝试使用if ($(this).hasClass('btn btn-default'))
,应该这样做。