使用jQuery访问动态创建的项目?
我有一个页面,其中一些HTML动态添加到页面。
这是创建的html和javascript:
$('#btn').click(function() { alert("Hello"); }); Button
查看我的Firebug控制台,我收到一条错误消息:
TypeError:$(“#btn”)为空
jQuery最初是在页面上加载的。
我在这做错了什么?
您必须将on()
(或on()
方法中定义的事件绑定on()
运行jQuery时DOM中存在的元素。通常这是在$(document).ready()
或类似。
绑定到将在页面加载/ DOM就绪的DOM中存在的$('#btn')
元素的最近元素。
假设您将$('#btn')
加载到#container
div
(例如)中,则给出:
然后使用:
$('#container').on('click', '#btn', function(){ alert('Button clicked!'); });
使用.on
将事件连接到按钮。 检查这个答案:
动态创建元素的事件绑定?
$(document).ready(function() { $('body').on('click', '#btn', function() { alert("Hello"); }); })
编辑:我添加了文档就绪代码,您需要确保这样做。
固定。
您正在寻找.on这里将click事件绑定到动态添加的节点。
$("#parent_container").on("click", "#btn", function () { alert("hello") })
文档: http : //api.jquery.com/on/
尝试
使用jQuery的.live()
函数