可能重复:
jQuery click not working for dynamically created items
$(document).ready(function(){
$('#btn').click(function(){
var createInput=$("<input type='button'>");
createInput.attr("id","close1");
createInput.attr("value","close");
$('#outer-div').append(createInput);
});
$("#close1").click(function(){
alert('hi');
});
});
</script>
</head>
<body>
<div id='outer-div'>
<input id='btn' type='button' value='click here'/>
</div>
代码有什么问题。当我点击名为close的动态生成按钮时,我没有收到警报。请帮帮忙
答案 0 :(得分:5)
这样可行:
$(document).ready(function(){
$('#btn').click(function(){
var createInput=$("<input type='button'>");
createInput.attr("id","close1");
createInput.attr("value","close");
$('#outer-div').append(createInput);
});
$(document).on('click', "#close1", function(){
alert('hi');
});
});
的问题
$("#close1").click...
是它将事件处理程序添加到任何内容,因为当您执行此行时集合为空。 on函数修复了该问题。
顺便说一句,建议将你的脚本放在身体末端而不是头部。