jquery html 动态添加元素绑定事件

                                                                 jquery html 动态添加元素绑定事件

点击表格每一行,弹出消息提醒。如果我们用js给表格添加一行,新添加的行点击事件失效。
当需要的内容还没有被插入时,选择器只会选择页面中已经存在的元素,所以事先没有存在元素是绑定不了事件的。

参考:jquery html 动态添加元素绑定事件

<html>
	<head>
		<title>动态添加元素绑定事件</title>
	    <style>
			table{
				border-collapse: collapse;  /**设置小表格之间的间距为0*/
				border-right:1px solid red;
				border-top:1px solid red;
			}
			table tr td{
				border-left:1px solid green;
				border-bottom:1px solid green;
			}
		</style>
		<script src="http://code.jquery.com/jquery-1.11.3.js"></script>
	</head>
	<body>
		<br/>
		<button onclick="addTr()">添加一行</button><br/><br/>
		<table>
			<tr>
				<td>昵称</td>
				<td>年龄</td>
				<td>性别</td>
			</tr>
			<tr id="tr_id">
				<td>东方不败</td>
				<td>17</td>
				<td>女</td>
			</tr>
			<tr id="tr_id">
				<td>西方不败</td>
				<td>24</td>
				<td>男</td>
			</tr>
		</table>
	</body>
</html>
<script>
	function addTr(){
		var html = '<tr id="tr_id">'+
						'<td>南方不败</td>'+
						'<td>19</td>'+
						'<td>男</td>'+
					'</tr>';
		$('table').append(html);
	}
	
	//按钮“添加一行”,添加的数据不会执行该事件
	$('table tr#tr_id').click(function(){
		alert('点击了');
	});
	
	//undelegate() 	从匹配元素移除一个被添加的事件处理器,现在或将来
	//向匹配元素的当前或未来的子元素附加一个或多个事件处理器
	//按钮“添加一行”,添加的数据会执行该事件
	/*$("table").delegate("tr#tr_id", "click", function () {
		alert('点击了');
	});*/
</script>

猜你喜欢

转载自blog.csdn.net/qq_36025814/article/details/86570908