我有一个问题首先让我解释一下我期望我的代码做什么。
我有一个带有选择的表单取决于从上面的选择中选择的数据。
假设表单正在创建menu_item
第一个选择应询问用户菜单类型。它的选项是 - 单篇文章,文章列表,类别视图。
如果用户选择单篇文章作为选项,则表单应填充一个选择字段,在该字段下方应显示数据库中的所有文章。与所有其他菜单类型选项相同。
此时我设法使用更改方法编写jQuery代码,该方法发布到服务器并根据菜单类型选择查询数据库中的相关选项列表数据(比如文章)。并按预期返回数据。
问题是我仍然希望能够将更改方法绑定到返回的数据,这样我仍然可以使用上面选择的正确文章填充链接字段。
但无论我做什么,都没有任何回应。无论是$.change
,$.click
方法都不适用于上面返回的数据。当我使用firebug检查dom时,我看到插入返回数据的div,即使在浏览器中显示数据也是空白的。
如何将jQuery事件侦听器绑定到其返回的数据?
返回数据的html是从服务器处理的,所以我是否必须使用服务器上数据html对侦听器函数进行内联调用?
请帮助谢谢。
答案 0 :(得分:0)
可能原因是你正在使用.bind或simple .change方法,用于页面上尚不存在的元素(仅在ajax调用之后附加)。
您应该使用.on方法和委托事件方法(或者对于jquery 1.7及更早版本,您可以使用.live方法)
$("#container_div").on("click", "#list_id li", function(event){
//list element clicked
});