什么是动态绑定事件?
js最突出优点在于能动态修改页面样式和动态修改页面内容,然而在我们开发过程中,将动态添加的元素中绑定事件的现象称为动态绑定事件。
动态绑定无法触发js的案例?
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<table>
<tbody>
<tr>
<td>1</td>
<td>2</td>
</tr>
</tbody>
</table>
</body>
<script type="text/javascript" src="jquery-2.1.1.min.js"></script>
<script>
//页面就绪化
$(function(){
$("td").click(function(){
$("<td>2</td>").appendTo("tr");
});
});
});
</script>
</html>
案例分析:在简单的js添加td案例中,js取到td,单击td动态添加一行td,value=3;在动态添加的td单击却无法继续添加,而单击静态td可继续添加。
处理动态绑定失效的方法
// js部分
$(function(){
$("tr").on("click","td",function(){
$("<td>2</td>").appendTo("tr");
});
});
分析:通过查阅相关说明,发现jQuery的on()方法是支持在动态添加的元素上绑定事件的。
当将上述事件不绑定在tr上而是绑定在td上时,无法触发生成td事件,而绑定在tr父节点上,不仅可以添加td,并且动态产生的td也可以触发生成td。