事件绑定
事件绑定有两种方法:分别是:.click()
和.on()
<!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>Document</title>
<script src="../jquery-1.11.3.js"></script>
<style>
#mydiv button {
margin: 0 20px;
}
</style>
</head>
<body>
<button id="btn1">点击</button>
<script>
//给btn1绑定事件
$('#btn1').click(function () {
console.log(1230)
})
</script>
</body>
</html>
如图给id为btn1的button绑定事件,点击结果则为:在控制台打印“1230”
<!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>Document</title>
<script src="../jquery-1.11.3.js"></script>
</head>
<body>
<button id="btn1">点击</button>
<button id="btn2">点击2</button>
<script>
//给btn1绑定事件(.click和.on都可给目标节点绑定事件)
$('#btn1').click(function () {
console.log(1230)
})
//给btn2绑定事件
$('#btn2').on('click', function () {
// 取消btn1的事件绑定
$('#btn1').off('click')
})
</script>
</body>
</html>
如上代码块:我们给id为btn1的button绑定了click事件,执行结果为:在控制台打印“0123”。
则写下面的则是给id为btn2的button绑定一个click事件,执行结果为:给id为btn1的button解除了事件绑定。
事件委托
<!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>Document</title>
<script src="../jquery-1.11.3.js"></script>
<style>
#mydiv button {
margin: 0 20px;
}
</style>
</head>
<body>
<div id="mydiv">
</div>
<button id="btn1">点击</button>
<script>
let num = 1
//给id为btn1的button绑定事件
$('#btn1').on('click', function () {
//往id为mydiv的div里添加一个按钮,且点击几次就是按钮几,
//比如点击一次就是按钮1,点击两次就是按钮2............
$('#mydiv').append(`<button>按钮${num++}</button>`)
})
// 事件委托(给id为mydiv的div里的button添加绑定事件)
$('#mydiv').on('click', 'button', function () {
//则每个button点击后的执行结果都为:在控制台打印“被点击了”
console.log('被点击了')
})
</script>
</body>
</html>
总结
绑定事件有两种方式:
1、.click(事件处理函数(匿名函数))
2、.on('事件名',事件处理函数(匿名函数))
事件委托:
.on('事件名','目标绑定的标签名',事件处理函数(匿名函数))
特别注意:在事件委托中,.on()
后面的标签委托的,必须是前面标签的儿子,不能委托前面标签的弟弟元素或者兄弟元素。
通常用于页面还不存在该元素,通过动态添加元素或者自己手动添加的元素去绑定事件。(我所说的自己手动添加不是说写在html里,还是像我最后那个代码块样,并不是页面运行后,就已经存在的元素)