jquery添加的新节点触发无效?

franzhong 2012-06-29 12:57:42
<!DOCTYPE html>

<meta charset=utf-8>

<html>

<head>

<style type="text/css">

.main{border:1px solid red;min-height:100px;width:500px;}

.main .app{cursor:pointer;}

</style>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

</head>

<body>

<div class="main">

<div class="app">Good_Old</div>

</div>

<input type="button" value="TEST">

<script>

$(document).ready(function(){

$(".app").click(function(){

alert(123);

})

$("input[type=button]").click(function(){

$(".main").append('<div class="app">Good_New</div>');

})

})

</script>

</body>

</html>

测试发现Old正常,新添的New节点不会弹出123

高手指点

...全文
185 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
franzhong 2012-06-29
  • 打赏
  • 举报
回复
回答的都对,我一直只用的是bind没想到还有live与on
我会多练习使用的,很强大啊各位,只能散分了,真想一人给你二百分啊
万分感谢
乌镇程序员 2012-06-29
  • 打赏
  • 举报
回复
1.7+版本应该使用on()方法来绑定:
$(document).on('click', '.app', function() { alert('123'); });
kinghome 2012-06-29
  • 打赏
  • 举报
回复
我这样理解
文档准备好进行事件绑定的时候,新节点并不存在。
所以即使你 通过 按钮 添加了N个新节点,事件绑定早已经完成。所以新节点就无效果了
001007009 2012-06-29
  • 打赏
  • 举报
回复
$(".app").live('click', function(){

alert(123);

})

yibey 2012-06-29
  • 打赏
  • 举报
回复
jquery 绑定事件的时候是用 live方法 $(".app").live('click',function(){})

87,914

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧