当前位置: 首页 > article >正文

Vue事件处理 - 事件修饰符

Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue事件处理 - 事件修饰符

目录

事件修饰符

事件修饰符

设置导航

stop修饰符

self修饰符

触发一次

阻止默认行为

模态框实现1

总结


事件修饰符

事件修饰符

如下:

.stop

.prevent

.capture

.self

.once

设置导航

导航父元素和子元素设置不同的点击事件时。

示例如下:

<script src="../lib/vue.js"></script>
<div id="box">
    <ul @click="handleUlClick">
        <li @click="handleLiClick">11111</li>
        <li>22222</li>
        <li>33333</li>
    </ul>
</div>
<script>
    let vm = new Vue({
        el:'#box',
        data:{},
        methods : {
            handleUlClick() {
                console.log('ul click');
            },
            handleLiClick() {
                console.log('li click')
            }
        }
    })
</script>

当点击第一个li时,会触发两个事件。

效果如下:

stop修饰符

使用stop可以阻止冒泡(如果没有stop 则会触发两个点击事件)

示例如下:

<ul @click="handleUlClick">
    <li @click.stop="handleLiClick">11111</li>
    <li>22222</li>
    <li>33333</li>
</ul>

self修饰符

设置自己触发 子点击不会触发。

示例如下:

<ul @click.self="handleUlClick">
    <li @click.stop="handleLiClick">11111</li>
    <li @click="handleLiClick">22222</li>
    <li>33333</li>
</ul>

触发一次

使用once修饰符,可用来实现只触发一次的事件。

示例如下:

<li @click.once="handleLiClick">33333</li>

阻止默认行为

可使用prevent修饰符来实现,阻止标签默认行为。

示例如下:

<a href="http://www.baidu.com" @click.prevent>跳转</a>

常用在form表单跳转之前,进行验证。

模态框实现1

利用事件和事件修饰符,简单实现一个登录窗口的显示和隐藏。

示例如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #overlay {
            margin: 0 auto;
            border : 1px solid red;
            width:400px;
            height:300px;
        }

        #center {
            text-align: center;
            margin:20px auto;
        }

        #center div {
            margin-top:20px;
        }
    </style>
</head>
<body>
<script src="../lib/vue.js"></script>
<div id="box">
    <!--模态框1-->
    <button @click="isShow=true">show</button>
    <div id="overlay" v-show="isShow" @click="isShow=false">
        <div id="center" @click.stop>
            <div>用户名:<input type="text"></div>
            <div>密码:<input type="password"></div>
            <div>
                <button>登录</button>
            </div>
        </div>
    </div>
</div>
<script>
  let vm = new Vue({
      el : '#box',
      data : {
          isShow : false
      },
      methods : {

      }
  })
</script>
</body>
</html>

效果如下:

点击show按钮显示登录窗口,然后点击登录窗口中表单外隐藏登录窗口。

总结

Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue事件处理 - 事件修饰符


http://www.kler.cn/a/542190.html

相关文章:

  • 【原创精品】基于Springboot3+Vue3的学习计划管理系统
  • Mybatis快速入门与核心知识总结
  • 【Flink源码分析】5. Flink1.19源码分析-异步编程(CompletableFuture)
  • FFmpeg(一) 简介
  • 本地搭建DeepSeek环境
  • C#中的Frm_Welcome.Instance.Show(),是什么意思
  • 什么是Java虚拟机(JVM)?它的作用是什么?
  • 单点登录2,jwt与aAuth2.0区别,二者怎么结合起来工作的,完整流程是什么
  • 腾讯云大数据套件TBDS与阿里云大数据能力产品对比
  • 【人工智能】python如何提供API接口供他人调用
  • 初等数论Ⅰ
  • 渗透篇(一)——外网打点之网站篇
  • 【多线程】阻塞队列,线程池,定时器
  • 使用WebMagic爬取51job上的招聘信息
  • unity 安装Entities
  • 《图解设计模式》笔记(七)简单化
  • LeetCode刷题---数组---840
  • 力扣1448. 统计二叉树中好节点的数目
  • 机器学习实战(零基础到精通)
  • deepseek本地部署小白教程
  • JavaEE-前端与后台的搭建
  • 【Mastering Vim 2_01】开篇词:在 AI 时代持续深耕底层技术,做长期主义的坚定捍卫者
  • 4.混合推荐系统
  • 数据结构 单链表的模拟实现
  • CSDN 大模型 笔记
  • 关于浏览器缓存的思考