Ajax调用仅在第一次触发

时间:2013-12-16 19:39:07

标签: jquery ajax django

我有一个ajax调用设置来从表中删除记录(由django-tables2制作)。每行都有一个删除按钮,其类为delete_relationship_button,id为关系记录的pk。 ajax调用完美...一次。后续调用不执行任何操作 - 网络选项卡和控制台都不显示任何结果。我看到其他人遇到了这个问题,但解决方案都涉及使用不推荐使用的.live

有什么想法吗?也会喜欢解释或指出为什么会发生这种情况的方向。

$('.delete_relationship_button').on('click', function(){
    relationship_pk = this.id;
    console.log(relationship_pk);
    $.ajax({
        type: 'POST',
        url: '/app/relate/delete/',
        data: {'relationship_pk':relationship_pk},
        success: function(data){
            $('#relationship_tables').html(data);
        }
    })
})


def delete_relationship(request):
    # import pdb; pdb.set_trace()
    try:
        relationship_pk = request.POST.get('relationship_pk')
        relationship = ItemRelationship.objects.get(pk=relationship_pk)
        source = relationship.source
        relationship.delete()
    except:
        pass
    db_table, component_table = get_relationships(source)
    return render(request, 'who/subtemplates/relationships.html', 
        {'db_table': db_table, 'component_table': component_table,})

1 个答案:

答案 0 :(得分:0)

您必须使用delegation using on来动态加载内容。

所以,改变

$('.delete_relationship_button').on('click', function(){

$(document).on('click', '.delete_relationship_button', function(){