2012-09-18 35 views
0

jquery的的jquery addClass不起作用

$(document).on('click', '#fun', function (e) { 
    var $this = $(this); 
    var request = $.ajax({ 
     url: "example.php", 
     type: "POST", 
     data: {bla: blabla}, 
     dataType: "html" 
    }); 

    request.done(function(msg) { 
     if(msg) 
     { 
      $this.addClass("btn btn-info btn-small marked"); 
      $("#isMarked", $this).val(msg) 
     } 
     else if(!msg) 
     { 
      $this.addClass("btn btn-small unmarked"); 
      $("#isMarked", $this).val(msg); 
     } 
    }); 

和按鈕

<a id='fun' class='btn btn-info btn-small marked' href='#'>fun</a> 

使用example.php將返回一個值0或1(表明真或假) 因此MSG將爲0或1

addClass在else中如果(!msg)無法工作。我找不到問題。任何想法?

+0

我並不意味着有爭議,但它是你的jQuery不起作用,不是方法調用。多一點擺弄可能會突出顯示這個問題 - 確保你的代碼實際上按照你的想法行事是一個好主意。 – jammypeach

+0

謝謝。 jquery工作得很好,除了像epascarello所說的「else if()」。順便說一句,我正在清理這個jquery,使其更好。你可以提供一些想法XD 注意:對不起,也許我沒有正確說明jquery代碼,他們實際上工作。 –

回答

1

msg將是一個字符串,因此您在比較if中的字符串,因此它應該始終爲真,因爲字符串是真值。

​var str1 = "0"; 
var str2 = "1"; 

var x = str1 ? "true" : "false"; 
var y = str2 ? "true" : "false"; 

​alert(x+"\n"+y);​​​​ 
+0

謝謝。我測試過,這是問題所在。我通過檢查值來解決它 - > if(msg =='1') –