Jquery 寻址新创建的动态元素id';s
我有一个部门:Jquery 寻址新创建的动态元素id';s,jquery,Jquery,我有一个部门: <div id="div1"></div> 在同一页上某物/sub_某物在页面加载时加载良好,并且: document.getElementById("[dynamic_id_1]_folder_link").onclick = function(){ div_refresh(); } 然后div_refresh()刷新。现在,任何调用现在刷新的中任何新创建的动态id的javascript函数都不起作用。我猜这是因为jquery不知道在div更新后
<div id="div1"></div>
在同一页上<代码>某物/sub_某物在页面加载时加载良好,并且:
document.getElementById("[dynamic_id_1]_folder_link").onclick = function(){
div_refresh();
}
然后div_refresh()代码>刷新
。现在,任何调用现在刷新的
中任何新创建的动态id的javascript函数都不起作用。我猜这是因为jquery不知道在div更新后创建的新id,因为它们是动态生成的。如何让它寻址新id并运行相同的:
document.getElementById("[dynamic_id_1]_folder_link").onclick = function(){
div_refresh();
}
上面的代码?带有委托事件处理程序。将当前事件处理程序替换为:
$('#div1').on('click', '[dynamic_id_1]_folder_link', div_refresh);
它也将适用于未来的元素
编辑:
您不能以这种方式调用带有参数的函数,您必须执行以下操作:
$('#div1').on('click', '[dynamic_id_1]_folder_link', function() {
div_refresh(param);
});
尝试使用或在将#div1
绑定到事件时使用为什么在创建div后使用getElementById而不是$?另外,向我们展示如何将新的div插入到#div1中,精确地使用这一行:$('#div1')。在('click','[dynamic#id#1]#文件夹链接'>',div#refresh('a#string#variable')代码>它似乎在页面加载时运行所有函数。假设在页面加载上创建了4个动态链接,我只是替换了这样一个警报:alert(“helloworld”)代码>用于div\u刷新
功能中的代码。“Hello World”将在页面加载中显示4次,如果我单击任何链接,则不会再次显示。@JasonBurgett-是的。请注意,div_refresh缺少括号,添加括号后,函数将立即执行,因此要向函数添加参数,还需要一个匿名函数。
$('#div1').on('click', '[dynamic_id_1]_folder_link', function() {
div_refresh(param);
});