jQuery绑定到范围之外的事件

时间:2011-05-01 04:15:29

标签: jquery

是的,所以我正在创建一个使用jQuery和AJAX进行管理的新闻系统。一切都很好,除了当我创建一个新帖子,并使用AJAX将其添加到新闻文章表中时,我无法在不刷新页面的情况下编辑它。我的创建表单使用的是.submit()事件,因此我的编辑表单也是如此。发布新文章时,编辑表单有效但提交按钮不起作用,因为它是在当前.submit()范围之外创建的。

这是一些快速伪代码。

我的PHP脚本生成一个表格,其中包含一行新闻文章,然后是每个包含该表单的新闻文章下方的隐藏行。当按下编辑链接时,jQuery激活表格行。

<tr>
  <td>news article</td>
</tr>
<tr style="display:none;">
  <td>hidden edit form</td>
</tr>

然后我的javascript看起来像:

$('#newsCreate').submit(function() {
    // do some ajax stuff to create news
    // when we add the news to the list we must add the table structure
    // so that means we have to add a form with an ID of "newsEdit"
    // as that is how the event is triggered
});

$('#newsEdit').submit(function() {
    // do some ajax stuff to edit news
    // this works perfectly by itself, but when the form is dynamically created
    // with the newsCreate block, this is outside the scope
});

所以希望通过我的评论你可以看到发生了什么。如何在没有复制/粘贴newsCreate.submit()内的30行代码的情况下修复此问题?

1 个答案:

答案 0 :(得分:1)

交换提交
`.live('submit',function(e){...});'

这是它的文档 http://api.jquery.com/live