事件委托:增加删除记录--事件委托

 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			#employeeTable {
				border-collapse: collapse;/合并边框 width: 307px;
				margin: 40px auto;
			}

			#employeeTable th {
				border: 1px solid black;
				width: 57px;
			}

			#employeeTable td {
				border: 1px solid black;
			}

			div {
				border: 1px black solid;
				width: 250px;
				padding: 10px;
				margin: 40px auto;
			}
		</style>
	</head>

	<body>
		<table id="employeeTable">
			<tr>
				<th>Name</th>
				<th>Email</th>
				<th>Salary</th>
				<th>&nbsp;</th>
			</tr>
			<tr>
				<td>Tom</td>
				<td>tom@tom.com</td>
				<td>5000</td>
				<td><a href="deleteEmp?id=001">Delete</a></td>
			</tr>
			<tr>
				<td>Jerry</td>
				<td>jerry@sohu.com</td>
				<td>8000</td>
				<td><a href="deleteEmp?id=002">Delete</a></td>
			</tr>
		</table>
		<div>
			<strong>添加新员工</strong>
			<table>
				<tr>
					<td class="word">name:</td>
					<td class="inp">
						<input type="text" name="empName" id="empName">
					</td>
				</tr>
				<tr>
					<td class="word">email:</td>
					<td class="inp">
						<input type="text" name="email" id="email">
					</td>
				</tr>
				<tr>
					<td class="word">salary:</td>
					<td class="inp">
						<input type="text" name="salary" id="salary">
					</td>
				</tr>
				<tr>
					<td colspan="2" align="center">
						<button id="addEmpButton" value="abc">Submit</button>
					</td>
				</tr>
			</table>
		</div>
		<script src="js/jquery-3.6.1.js"></script>
		<script>
			//添加新员工
			$('#addEmpButton').click(function() {
				//收集输入数据
				var $empName = $('#empName');
				var $email = $('#email');
				var $salary = $('#salary');
				var name = $empName.val(); //表单传入的数据
				var email = $email.val();
				var salary = $salary.val();

				//生成对应的标签 插入节点中 
				if (name != "" && email != "" && salary != "") {
					//给加入的增加监听
					//是后代关系
					$('<tr></tr>')
						.append('<td>' + name + '</td>')
						.append('<td>' + email + '</td>')
						.append('<td>' + salary + '</td>')
						.append('<td><a href="deleteEmp?id="' + Date.now() + '>Delete</a></td>')
						.appendTo('#employeeTable>tbody')
						.find('a')
						
				} else {
					alert('请输入正确的')
				}
				//清除输入
				$empName.val('');
				$email.val('');
				$salary.val('');
			})

			//删除员工-找到a标签
			//后代选择器
			//这是初始化的时候增加的监听 但是新增加的没有监听
			//事件委托
			$('#employeeTable').delegate('a','click',delA)
			
			function delA(){
				//找到父亲
				// this是dom元素
				var $tr = $(this).parent().parent();
				var name = $tr.children(':first').html();
				if (confirm('确定删除' + name + '吗?')) {
					//删除所有元素
					$tr.remove();
				}
				return false;
				
			}
		</script>
	</body>
</html>

委托:

监听增加的对象:父元素

操作子元素,事件冒泡到父元素

父辈元素不直接处理使劲按 是通过发生事件的子元素操作回调函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值