HMVue2.3.2【(3)事件绑定指令】
1 事件绑定指令
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>Documenttitle>
head>
<body>
<div id="app">
<p>count的值是{{count}}p>
<button v-on:click="add">+1button>
<button v-on:click="sub">-1button>
<button @click="add2(2)">+2button>
div>
<script src="./lib/vue-2.6.12.js">script>
<script>
const vm = new Vue({
el: '#app',
data: {
count: 0,
},
// methods的作用:定义事件的处理函数
methods: {
add: function(){
console.log('+1')
// console.log(vm)
// vm.count += 1
// console.log(vm === this) //true,在 methods 处理函数中,this 就是 new 出来的 vm 实例对象
this.count += 1
},
//简写(推荐)
sub(){
console.log('-1')
// vm.count -= 1
this.count -= 1
},
add2(n){
console.log('+' + n)
this.count += n
}
},
});
script>
body>
html>
2 事件对象$event
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>Documenttitle>
head>
<body>
<div id="app">
<p>count的值是{{count}}p>
<button @click="add(1)">+nbutton>
<button @click="add2">+nbutton>
<button @click="add3(1)">+nbutton>
<button @click="add4(1, $event)">+nbutton>
div>
<script src="./lib/vue-2.6.12.js">script>
<script>
const vm = new Vue({
el: '#app',
data: {
count: 0,
},
methods: {
add(n){ //n是传进来的参数
this.count += n
},
add2(e){ //此时e是事件对象
this.count += 1
console.log(e)
if(this.count%2 === 0){
e.target.style.backgroundColor = 'red'
}else{
e.target.style.backgroundColor = ''
}
},
add3(e){ //此时e是传进来的参数
this.count += e
console.log(e)
},
add4(n,e){ //n是传进来的参数,e是事件对象
this.count += n
console.log(e)
},
},
});
script>
body>
html>
3 事件修饰符
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>Documenttitle>
head>
<body>
<div id="app">
<a href="http://www.baidu.com" @click="show1">跳转到百度1a>
<a href="http://www.baidu.com" @click="show2">跳转到百度2a>
<a href="http://www.baidu.com" @click.prevent="show3">跳转到百度3a>
<hr>
<div style="height: 150px; background-color: orange; padding-left: 100px; line-height: 150px;" @click="divHandler">
<button @click.stop="btnHandler">按钮button>
div>
div>
<script src="./lib/vue-2.6.12.js">script>
<script>
const vm = new Vue({
el: '#app',
data: {},
methods: {
show1(){
console.log('a被点击了')
//点击超链接时:能够正常打印,但很快会跳转到百度首页,进入输出百度首页的一些打印信息
},
show2(e){
e.preventDefault() //阻止默认行为
console.log('a被点击了')
//点击超链接时:能够正常打印,不会跳转到百度首页
},
show3(){
console.log('a被点击了')
//点击超链接时:能够正常打印,不会跳转到百度首页
},
btnHandler(){
console.log('btnHandler')
},
divHandler(){
console.log('divHandler')
}
}
})
script>
body>
html>
(29条消息) 事件冒泡(快速理解)_bxz0729的博客-CSDN博客_事件冒泡
浅谈JS事件冒泡 - 全凭一口仙气儿活着 - 博客园 (cnblogs.com)
4 按键修饰符
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>Documenttitle>
head>
<body>
<div id="app">
<input type="text" @keyup="clearInput1">
<input type="text" @keyup.esc="clearInput2">
<input type="text" @keyup.esc="clearInput3" @keyup.enter="commintAJAX">
div>
<script src="./lib/vue-2.6.12.js">script>
<script>
const vm = new Vue({
el: '#app',
data: {},
methods: {
clearInput1(){
console.log('触发了clearInput1方法')
},
clearInput2(){
console.log('触发了clearInput2方法')
},
clearInput3(e){
e.target.value = ''
},
commintAJAX(){
console.log('触发了commintAJAX方法')
}
}
})
script>
body>
html>