【问题标题】:Callback data is not being recognized回调数据未被识别
【发布时间】:2017-02-21 23:59:00
【问题描述】:

每当您单击“删除”按钮时,我都会尝试删除整行。这是我的 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")

【问题讨论】:

    标签: javascript jquery python json


    【解决方案1】:

    你有一个更接近的问题。

    您的回调函数中的变量thisclick 函数中的变量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();
            }
        });
    });
    

    【讨论】:

      猜你喜欢
      • 2015-11-23
      • 2017-09-17
      • 1970-01-01
      • 2012-02-28
      • 2013-04-10
      • 2016-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多