所以我尝试了可靠的谷歌,但没有找到令人满意的解决方案。基本上,我不确定我所做的事情是否应该起作用。
我想进行一个返回JSON结果的ajax调用。我迭代这个结果并写一个像这样的字符串并推送到#results span(所有这一切都很好):
var str='';
for (var n=0;n<data.length; n++){
str=+"<div class='game_name'>" + data[n]['name']+"</div><div class='game_id'>"+ data[n]['id'] +"</div>";
}
$('#results').html(str);
然后(通过,然后我的意思是在返回结果之前将其编码到页面中)使用类似这样的game_name类绑定一个click事件(这部分不起作用,但对于手工编码到页面中的内容工作正常开始):
$(".game_name").bind('click',function(){
alert('here i am');
});
但返回的结果没有与之关联的绑定。如何才能使点击响应?有没有办法触发一个事件,以便让DOM意识到已经将新元素添加到DOM中?或者我只是想知道这应该如何运作?
感谢您的帮助
答案 0 :(得分:3)
答案 1 :(得分:0)
您是否查看了jQuery的live
事件?它允许您为所有动态添加的元素绑定click
。
答案 2 :(得分:0)
使用live代替:
$(".game_name").live('click',function(){
alert('here i am');
});
答案 3 :(得分:0)
如果您确保在$('#results').html(str);
行之后运行绑定,那么您的代码应该可以运行,但我认为您可能会更好,注册 live 事件监听器, “所有匹配此选择器的项都应绑定到此侦听器,即使它们在执行此代码后的某个时刻被添加到DOM中”:
$(".game_name").live('click',function(){
alert('here i am');
});