在AJAX调用之后,jQuery重新绑定.submit()

时间:2011-05-05 22:17:34

标签: jquery ajax get submit bind

我正在创建一个论坛风格的系统,其中创建了帖子,然后用户可以在原始帖子上发表评论。 (我正在做的事情在上下文中实际上是非常不同的,但主题是相同的。)

添加评论的表单是Post的一部分,使用jQuery $ .get()来提取。

这是目前的提交处理程序:

$('#add-stage-form').submit(function(){

        var data = $('#add-stage-form').serialize();
        add_stage(data);
        return false;   
    });

好的..现在,我需要在它被拉入后重新绑定,同样可以使用live()

请,如果有人建议live('submit', function(){ ... })尖叫,因为提交不像点击一样!

我也很清楚你可以在同一个按钮上绑定'click'事件 - 我很多而是绑定.submit()事件,如果可能的话

提前致谢! :)

2 个答案:

答案 0 :(得分:5)

您可以在get方法的onComplete回调中手动添加绑定...

$.get('getposts.html', function(data) {
    var myForm = $(data);
    $('.formContainer').append(myForm);

    $('.add-stage-form', myForm).submit(function(){

        var data = $(this).serialize();
        add_stage(data);
        return false;   
    });

});

*编辑 将add-stage-form更改为类而不是id。你提到每个帖子会有一个表格吗?

答案 1 :(得分:1)

您是否尝试过使用Live()? :)

但严重的是,如果您将单击事件附加到按钮然后调用jQuery.Post()操作,则可能不是一个坏主意。甚至是提交页面的javascript方法。

我知道这不是(最佳)解决方案,但它可能会让你超越线路。

如果有更好的答案,我会撤回这个答案。