日期:2014-05-16  浏览次数:20626 次

jquery在ajax后新添加的元素,如何绑定事件hover,click?
1.前言。 
live在1.7后增加,1,9后被移除,真够悲催的。die在1.9也不存在了。on和delegate还在。其实用on替代live是一样的,新增加的元素仍然能够触发事件。
2.例子。
直接将下面例子保持为html,可以直接运行。
<!DOCTYPE html>
<html>
  <title>如何为div加样式"add"或者".css"都可以为每个div背景加色</title>
<head>
  <style>
 div { width:60px; height:60px; margin:10px; float:left; }
 p { clear:left; font-weight:bold; font-size:16px; 
     color:blue; margin:0 10px; padding:2px; }
 </style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <div></div>

  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>

  Added this... (notice no border)
  <table>
    <tbody id="kk1">
    <tr><td>fewfew</td></tr>
    <tbody>
</table>
<input type="button" value="点击" onclick="appd();"/>

<script>
<!--.add为为字体加框,.css为为每个div背景加色-->
$("div").css("border", "2px solid red") .add("p").css("background", "yellow");
function appd(){
  alert("kk");
  $("#kk1").append("<tr id='kkk'><td>123</td></tr>").children("tr[id='kkk']").on('mouseenter',function(){	alert("haha")}).on('mouseleave',function(){	alert("hehe")});

}
</script>

</body>
</html>
1 楼 nannan408 2013-11-22  
  我修改了一下,这里提醒一下,最好在append等dom操作的同时对元素进行hover等绑定操作,不然如果是ajax请求,则不是当时的绑定就无效。