2017-02-21 1 views
0

[削除]ボタンをクリックすると、この行全体を削除しようとしています。これは私のjQueryのコマンドです:コールバックデータが認識されない

UPDATE:私は私の最終版にクリック機能を更新しました:私は、削除をクリックすると

$(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機能をトリガし、{「ステータス」のコールバックを返します。 :"成功"}。しかし、returnData.status == "Success"がトリガされていません.jQuery.type(returnData)を試してみると、stringと表示されます。だから私は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あなたのコールバック関数は、click関数内のものと同じではないthisです。

$('.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(); 
     } 
    }); 
}); 

はこれを解決する方法はいくつかありますが、ここではそれらの一つであります

関連する問題