JavaScript-js 追加节点提问
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Click</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<style>
.box a{padding:2px 10px;}
</style>
</head>
<body>
<div class="box">
<a href="javascript:void(0);">a</a>
</div>
<a href="javascript:void(0);" id="add">Add</a>
<script>
$(document).ready(function(){
$('.box a').click(function(){
alert('a');
});
$('#add').click(function(){
$('.box').append('<a href="javascript:void(0);">a</a>');
});
});
</script>
</body>
</html>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
新增加的节点没有绑定click事件
@谢昌磊 是对的. 你代码里的
$('.box a').click(function(){
只绑定了已有的 a, 新加入的a 没有做click 绑定.
以前jquery有一个live方法, 可以绑定现有的和以后加入的 selector指定的节点. 但是被干掉了.
现在可以使用jquery.on来替换live, 见:
[http://stackoverflow.com/questions/14354040/jquery-1-9-live-is-not-a-function/14354091#14354091]
http://stackoverflow.com/questions/8021436/turning-live-into-on-in-jquery
把第一个事件改成下面这样就行了。
$(document).on("click",".box a",function(){
alert('a');
})
需要使用on或者live进行绑定。因为你这个是生成的。