2013-05-19 124 views
1

你好我做了一個代碼,需要在ajax調用後添加一個類。我相信代碼是正確的,但仍然沒有添加類。它真的很奇怪,因爲代碼中的所有其他東西都起作用,並且我確信addClass的代碼是正確的,我也檢查了任何錯誤的控制檯,但沒有錯誤。這裏是我的代碼jquery addClass在ajax調用後不工作

$(document).on('click', '.miclickks', function(event) { 
event.preventDefault(); 

var for_uid = $(this).parents("li").attr('data'); 
var for_name = $(this).parents("li").attr('unme'); 
var for_pic = $(this).parents("li").attr('upic'); 
var owner_uid = $('.row-fluid').attr('uid'); 
var owner_name = $('.row-fluid').attr('usnm'); 
var owner_pic = $('.row-fluid').attr('usp'); 
var type  = "kiss"; 

var dataString = "type=" + type + "&for_uid=" + for_uid + "&for_name=" + for_name + "&for_pic=" + for_pic + "&owner_uid=" + owner_uid + "&owner_pic=" + owner_pic + "&owner_name=" + owner_name; 

     $.ajax({ 
      type: "POST", 
      url: "include/ajax.php", 
      data: dataString, 
      success: function (html) { 
      if(html=="300") 
      { 
      $('#myModal .modal-body p').html("Error Please Try Again."); 

      $('#myModal').modal('show'); 
      } 
      else 
      { 
      $(this).addClass('active');  


      } 
      } 
     }); 



}); 

回答

6

兩種方式:

首先

var that = this; 
$.ajax({ 
    type: "POST", 
    url: "include/ajax.php", 
    data: dataString, 
    success: function (html) { 
     if (html == "300") { 
      $('#myModal .modal-body p').html("Error Please Try Again."); 
      $('#myModal').modal('show'); 
     } else { 
      $(that).addClass('active'); 
     } 
    } 
}); 

秒OND(使用context選項):

$.ajax({ 
    type: "POST", 
    url: "include/ajax.php", 
    data: dataString, 
    context: this, 
    success: function (html) { 
     if (html == "300") { 
      $('#myModal .modal-body p').html("Error Please Try Again."); 
      $('#myModal').modal('show'); 
     } else { 
      $(this).addClass('active'); 
     } 
    } 
}); 
+0

感謝大家的回答。今天我學到了一些新東西。它完美的謝謝你 – user1001176

2

試試這個 -

var $p = $(this); 
$.ajax({ 
    type: "POST", 
    url: "include/ajax.php", 
    data: dataString, 
    success: function (html) { 
     if (html == "300") { 
      $('#myModal .modal-body p').html("Error Please Try Again."); 

      $('#myModal').modal('show'); 
     } else { 
      $p.addClass('active'); 
     } 
    } 
}); 
0

也許我說一些錯誤,有人會正確的,但我認爲錯誤在該指令:$(this).addClass('active'); 在這種情況下「本」是指ajax對象,所以請確保您正在調用proprer對象,其中添加活動類

1

原因是this裏面的success()是XHR對象,而不是單擊的元素。你可以使用context選項強制它達到你想要的任何值。

對於前:

$.ajax({ 
    context: this, // pass the clicked element via context 
    ... 
    success: function() { 
     ... 
     $(this).addClass('active'); // now this refers to the clicked element 
    } 
});