寻址新创建的动态元素id

时间:2013-06-05 02:06:32

标签: jquery

我有一个div:

<div id="div1"></div>

和一个脚本:

$(document).ready(function() {
  $('#div1').load('/something/sub_something');
});

在同一页面上。页面执行时something/sub_something加载正常,并且:

document.getElementById("[dynamic_id_1]_folder_link").onclick = function(){
  div_refresh();
}

然后div_refresh();刷新<div id="div1"></div>。现在,任何调用现在刷新的<div id="div1"></div>中新创建的动态ID的javascript函数都不起作用。我猜这是因为jquery不知道自div被更新以来已经创建的新id,因为它们是动态生成的。如何让它来解决新的id并运行相同的内容:

document.getElementById("[dynamic_id_1]_folder_link").onclick = function(){
  div_refresh();
}

代码吗?

2 个答案:

答案 0 :(得分:1)

使用委派的事件处理程序。用以下内容替换当前事件处理程序:

$('#div1').on('click', '[dynamic_id_1]_folder_link', div_refresh);

它也适用于未来的元素。

修改

你不能用这样的参数调用函数,你必须这样做:

$('#div1').on('click', '[dynamic_id_1]_folder_link', function() {
    div_refresh(param);
});

答案 1 :(得分:0)

在将#div1绑定到某个事件时尝试使用live()on()