0

我有一个 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>。现在,在现在刷新的任何新创建的动态 id 上调用的任何 javascript 函数<div id="div1"></div>都不起作用。我猜这是因为jquery不知道自从div更新以来创建的新id,因为它们是动态生成的。我怎样才能让它解决新的 id 并运行它:

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

代码就可以了?

4

2 回答 2

1

使用委托的事件处理程序。将当前事件处理程序替换为:

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

它也适用于未来的元素。

编辑:

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

$('#div1').on('click', '[dynamic_id_1]_folder_link', function() {
    div_refresh(param);
});
于 2013-06-05T02:09:28.943 回答
0

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

于 2013-06-05T02:12:25.507 回答