2015-10-16 84 views
0
$('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子句是工作的成功,意味着方法UpdatePostThumbsUp在控制器(MVC)是正常工作),但與else子句。 按鈕HTML類似:jQuery的AJAX像社交網絡

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

究竟是什麼問題? –

+0

爲什麼else子句不起作用:( – Jen

+1

嘗試將if($(this).toggleClass('btn btn-default'))'改爲if($(this).hasClass('btn-default' )' – FBHY

回答

0

$(this).toggleClass('btn btn-default'),將始終返回jQuery的,即轉化爲boolean,所以你會經常去,如果分支。

嘗試使用,如果($(this).hasClass('btn btn-default')),應該做的伎倆。

來源:http://api.jquery.com/toggleclass/