在XHR响应之后,如何使用jQuery重新绑定这个Javascript事件?

How do I re-bind this Javascript event, using jQuery, after an XHR response?

本文关键字:绑定 事件 Javascript 新绑定 之后 响应 XHR jQuery 何使用      更新时间:2023-09-26

我有一个嵌入在网页的表单。当用户单击submit时,XHR响应要么是一个重置了所有字段的表单(即在成功时),要么是一个带有错误消息的表单(即在失败时)。我使用响应来覆盖现有的表单。

这在用户第一次提交表单时起作用。然而,如果他们提交第二次,问题是表单发布了一个完整的HTTP请求。

在网页中,表单被包裹在一个span中,#add-container。表单中的按钮是#add-button。

根据下面的代码,我试图重新绑定一个函数,每当跨度中的内容发生变化时,按钮的单击事件。这似乎在第一次(即当文档加载时)起作用,但在随后的时间(即当XHR响应加载到页面中时)不起作用。

// Add product and services
$(document).ready(function() {
    $("#add-container").change(prepareAddForm());
});
function prepareAddForm() {
    var uri = '/product/add/org/4/format/html';
    $("#add-button").click(function() {
        $("#add-container").load(uri, {language: "php", version: 5});
        return false;
    });
}

任何想法?

对不起,刚刚整理好。需要使用.live()方法!