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">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">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)