2017-02-21 52 views
0

我試圖刪除整個行,只要你點擊刪除按鈕。這是我的jQuery命令:回調數據未被識別

更新:我已經點擊功能更新到我的最後定稿:

$(document).on('click', '.delete-assignment',function() { 
    console.log("click"); 
    var data = { 
     assignment_id: $(this).closest('tr').find('.assignment-id').html(), 
     class_id: $('#classId').val() 
    } 

    var row = $(this).closest('tr'); 

    deleteAssignment(data, function(returnData){ 
     var returnData = JSON.parse(returnData); 

     if(returnData.status == "Success"){ 
      console.log("yes"); 
      row.hide(); 
     } 
    }); 
}); 

當我點擊刪除,它成功地觸發deleteAssignment功能,並返回{「地位」回調:「成功」}。然而,當我返回Data.status ==「成功」沒有被觸發。如果我​​嘗試jQuery.type(returnData),它說的字符串。所以,我實現了JSON.parse和它說在位置0

在這裏JSON意外的標記是我的html:

<tbody id="Homework"> 
    <tr> 
     <td><a href="/class/assignment/view/51">Homework Test Title</a></td> 
     <td>02/16/2017 - 10:00 AM</td> 
     <td class="assignment-id">51</td> 
     <td><button type="button" class="btn btn-danger delete-assignment">Delete</button></td>  
    </tr> 
</tbody> 

我想也包括我是如何將數據傳回deleteAssignment作爲回調(定義在javascript函數(deleteAssignment)

assignment = Assignments.objects.get(id=data['assignment_id']) 
     assignment.delete() 

     data = {} 
     data['status'] = "Success" 

     return HttpResponse(json.dumps(data), content_type="application/json") 

回答

1

你有clouser問題。

變量this內你的回調函數thisclick函數內部不一樣。

有幾種方法來解決這個問題,這裏就是其中之一:

$('.delete-assignment').on('click', function() { 

     var data = { 
      assignment_id: $(this).closest('tr').find('.assignment-id').html(), 
      class_id: $('#classId').val() 
     } 
     var that = this; 

     deleteAssignment(data, function(returnData){ 
      console.log(returnData); 
      if(returnData.status == "Success"){ 
       print("yes"); 
       $(that).closest('tr').remove(); 
     } 
    }); 
});