0
点赞
收藏
分享

微信扫一扫

16.Vue的事件扩展


目录

​​1.复习内容​​

​​2.Vue的事件修饰符连用 ​​

​​3.Vue的指定键盘事件连用触发​​

1.复习内容

前两节我们学习了Vue的事件修饰符和Vue的键盘事件,这一节我们来学习一下Vue事件修饰符以及键盘事件的扩展。以下是前两节的内容,大家可以复习一下。


2.Vue的事件修饰符连用 

我们在14节中讲过一个事件冒泡的例子:

<!--阻止事件冒泡(常用)-->
<div class="demo1" @click="showInfo">
<button @click.stop="showInfo">点击提示</button>
</div>

我们使用事件修饰符stop就可以阻止事件冒泡。否则点击一次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>键盘事件</title>
<!--引入Vue-->
<script type="text/javascript" src="../js/vue.js"></script>
<style>

</style>
</head>
<body>
<!--准备好一个容器-->
<div id="root">
<h2>欢迎学习{{name}}</h2>
<!--阻止事件冒泡(常用)-->
<div class="demo1" @click="showInfo">
<a href="
@click.stop="showInfo">点击提示</a>
</div>
</div>
</body>

<script type="text/javascript">
Vue.config.productionTip = false //阻止Vue在启动时生成生产提示
Vue.config.keyCodes.huiche = 13;
const vm = new Vue({
el:'#root',
data:{
name:'Vue专栏'
},
methods: {
showInfo(e){
alert('点击提示')
}

},
})
</script>
</html>

执行效果:

16.Vue的事件扩展_修饰符

我们可以看到它不仅执行了点击事件,而且还执行了a标签的默认跳转方法。所以这个时候我们不仅需要阻止事件冒泡,而且还需要阻止a标签的默认方法,也就是说我们需要同时用两个修饰符,那么这种情况该怎么办呢?

其实Vue中的事件修饰符是可以连用的。

所以我们就可以像下面这样使用:

<!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>
<!--引入Vue-->
<script type="text/javascript" src="../js/vue.js"></script>
<style>

</style>
</head>
<body>
<!--准备好一个容器-->
<div id="root">
<h2>欢迎学习{{name}}</h2>
<!--阻止事件冒泡(常用)-->
<div class="demo1" @click="showInfo">
<a href=
@click.stop.prevent="showInfo">点击提示</a>
</div>
</div>
</body>

<script type="text/javascript">
Vue.config.productionTip = false //阻止Vue在启动时生成生产提示
Vue.config.keyCodes.huiche = 13;
const vm = new Vue({
el:'#root',
data:{
name:'Vue专栏'
},
methods: {
showInfo(e){
alert('点击提示')
}

},
})
</script>
</html>

 执行效果:

16.Vue的事件扩展_html_02

这样就可以同时用两个修饰符了。 

3.Vue的指定键盘事件连用触发

我们在15节中讲过 Vue中用法特殊的系统修饰键在配合keyup使用的时候,需要按下修饰键的同时,再按下其他键,随后释放其他键,事件才会被触发。

<!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>
<!--引入Vue-->
<script type="text/javascript" src="../js/vue.js"></script>
<style>

</style>
</head>
<body>
<!--准备好一个容器-->
<div id="root">
<h2>欢迎学习{{name}}</h2>
<input type="text" placeholder="按下回车提示输入" @keyup.ctrl="showInfo">
</div>
</body>

<script type="text/javascript">
Vue.config.productionTip = false //阻止Vue在启动时生成生产提示
Vue.config.keyCodes.huiche = 13;
const vm = new Vue({
el:'#root',
data:{
name:'Vue专栏'
},
methods: {
showInfo(e){
alert('提示')
}

},
})
</script>
</html>

 执行效果:

16.Vue的事件扩展_键盘事件_03

我们可以看到上述代码无论按住Ctrl+任意一个键再放开都会触发事件。

那么如果我们只希望按住ctrl+y再放开才会触发 该怎么办?

其实Vue的键盘事件也是可以连用的,我们可以像下面这样写

<!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>
<!--引入Vue-->
<script type="text/javascript" src="../js/vue.js"></script>
<style>

</style>
</head>
<body>
<!--准备好一个容器-->
<div id="root">
<h2>欢迎学习{{name}}</h2>
<input type="text" placeholder="按下回车提示输入" @keyup.ctrl.y="showInfo">
</div>
</body>

<script type="text/javascript">
Vue.config.productionTip = false //阻止Vue在启动时生成生产提示
Vue.config.keyCodes.huiche = 13;
const vm = new Vue({
el:'#root',
data:{
name:'Vue专栏'
},
methods: {
showInfo(e){
alert('提示')
}

},
})
</script>
</html>

 执行效果:

16.Vue的事件扩展_修饰符_04

这样我们就实现了只按住ctrl+y的组合才会触发事件了。 


举报

相关推荐

0 条评论