jquery为新增元素添加事件

    <script type="text/javascript">
var $id=1;
$(function(){
$(".hehe").click(function(){
$id+=1;
$(this).after("<div class='hehe' id='"+$id+"'>"+$id+"</div>");
});
});
</script>
  <body>
  <div class="hehe" id="1"></div>
  </body>

这种形式的事件只作用于已经存在的元素,新增的元素无效。以上例子中只能点击id=1的div,不能点击id=234..

    <script type="text/javascript">
var $id=1;
$(function(){
$("body").on("click",".hehe",function(){
$id+=1;
$(this).after("<div class='hehe' id='"+$id+"'>"+$id+"</div>");
});
</script>
  <body>
  <div class="hehe" id="1"></div>
  </body>

以上例子可以为新增的元素绑定事件,新增的id都可以点击。当click时,事件从.hehe开始冒泡到body,然后触发body内的新增的.hehe,从而绑定事件。

    <script type="text/javascript">
var $id=1;
$(function(){
$(".hehe").on("click",function(){
$id+=1;
$(this).after("<div class='hehe' id='"+$id+"'>"+$id+"</div>");
});
});
</script> <body>
<div class="hehe" id="1">1</div>
</body>

但是以上代码只能也点击id1,原因是当click时,事件只能冒泡到第一个.hehe,而新增的.hehe是同级元素,不能为他们绑定事件。

jQuery on()方法是官方推荐的绑定事件的一个方法,适用于未创建的元素。

$(selector).on(event,childSelector,data,function,map)

上一篇:Ecust DIV3 k进制 【暴力不断优化】


下一篇:Node.js的cluster模块——Web后端多进程服务