$('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
});
}
});
I don't know why it has only worked with the if clause (the if clause is work success that mean method UpdatePostThumbsUp in controller (MVC) is work normally), but not with the else clause. Button like in html:
我不知道为什么它只适用于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>
1 个解决方案
#1
0
This $(this).toggleClass('btn btn-default')
, will always return a jQuery, that converted to boolean
is true, so you will always go to the if branch.
这个$(this).toggleClass('btn btn-default')将始终返回一个转换为boolean的jQuery为true,因此您将始终转到if分支。
Try using if ($(this).hasClass('btn btn-default'))
, should do the trick.
尝试使用if($(this).hasClass('btn btn-default')),应该这样做。
#1
0
This $(this).toggleClass('btn btn-default')
, will always return a jQuery, that converted to boolean
is true, so you will always go to the if branch.
这个$(this).toggleClass('btn btn-default')将始终返回一个转换为boolean的jQuery为true,因此您将始终转到if分支。
Try using if ($(this).hasClass('btn btn-default'))
, should do the trick.
尝试使用if($(this).hasClass('btn btn-default')),应该这样做。