【问题标题】:how to bind a jquery event handler on a jquery post returned data如何在 jquery 发布返回的数据上绑定 jquery 事件处理程序
【发布时间】:2013-07-18 07:45:39
【问题描述】:

我有一个问题,首先让我解释一下我希望我的代码做什么。

我有一个表单,它的选择取决于从上面的选择中选择的数据。

假设表单正在创建一个menu_item

第一个选择应该询问菜单类型的用户。它的选项是 - 单篇文章、文章列表、类别视图。

如果用户选择单篇文章作为选项,则表单应填充下面的选择字段,该字段应显示数据库中的所有文章。与所有其他菜单类型选项类似。

此时,我设法使用 change 方法编写了 jQuery 代码,该方法发布到服务器并根据菜单类型选择在数据库中查询相关的选项列表数据(比如文章)。并且数据按预期返回。

问题是我仍然希望能够将更改方法绑定到返回的数据,这样我仍然可以使用上面选择的正确文章填充链接字段。

但无论我做什么,都没有任何反应。无论是$.change$.click 方法都不会对上面返回的数据起作用。当我使用 firebug 检查 dom 时,我看到插入返回数据的 div 是空白的,即使在浏览器中显示数据也是如此。

如何将 jQuery 事件侦听器绑定到其返回的数据?

返回数据的html是从服务器处理的,那么我必须使用从服务器上的数据html对监听函数的内联调用吗?

请帮忙谢谢。

【问题讨论】:

    标签: jquery events post


    【解决方案1】:

    可能的原因是您正在使用 .bind 或简单的 .change 方法,用于页面上尚不存在的元素(仅在 ajax 调用之后附加)。

    您应该使用带有委托事件方法的 .on 方法(或者对于 jquery 1.7 和更早版本,您可以使用 .live 方法)

    $("#container_div").on("click", "#list_id li", function(event){
        //list element clicked
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-27
      • 2010-09-12
      • 1970-01-01
      相关资源
      最近更新 更多