每当您单击“删除”按钮时,我都会尝试删除整行。这是我的 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函数并返回{"status":"Success"}的回调。然而,当我 returnData.status == "Success"没有被触发。如果我尝试 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")
最佳答案
您遇到了关闭问题。
回调函数中的变量 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();
}
});
});
关于javascript - 回调数据不被识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42380249/