<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>事件代理</title>
<style>
.parent {
height: 500px;
background-color: powderblue;
overflow: hidden;
}
.child {
width: 100px;
height: 100px;
background-color: seagreen;
margin: 50px;
float: left;
}
</style>
<script>
window.onload = function() {
// 1.获取dom节点
var parent = document.getElementsByClassName('parent')[0]
var child = document.getElementsByClassName('child')
// 将类数组对象转成数组
child = Array.prototype.slice.call(child)
// 事件代理(底层逻辑:事件冒泡)
parent.onclick = function(event) {
// 判断当前点击是否为子元素
if(event.target.className === 'child'){
alert('子元素')
}
}
// 动态添加dom节点
var cloneDom = child[0].cloneNode(true)
parent.appendChild(cloneDom)
}
</script>
</head>
<body>
<div class="parent">
<div class="child">one</div>
<div class="child">two</div>
<div class="child">three</div>
<div class="child">four</div>
<div class="child">five</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>事件代理</title>
<style>
.parent {
height: 500px;
background-color: powderblue;
overflow: hidden;
}
.child {
width: 100px;
height: 100px;
background-color: seagreen;
margin: 50px;
float: left;
}
</style>
<script>
window.onload = function() {
// 1.获取dom节点
var parent = document.getElementsByClassName('parent')[0]
// 动态添加dom节点
var cloneDom = parent.children[0].cloneNode(true)
parent.appendChild(cloneDom)
var child = document.getElementsByClassName('child')
// 将类数组对象转成数组
child = Array.prototype.slice.call(child)
console.log(child);
// 遍历数组
child.forEach(function(item,index) {
// 添加绑定事件
item.onclick = function() {
console.log(index);
}
})
}
</script>
</head>
<body>
<div class="parent">
<div class="child">one</div>
<div class="child">two</div>
<div class="child">three</div>
<div class="child">four</div>
<div class="child">five</div>
</div>
</body>
</html>