vue项目遇见事件冒泡如何处理

这篇具有很好参考价值的文章主要介绍了vue项目遇见事件冒泡如何处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

开发环境

 

Win 10

element-ui  "2.8.2"

Vue 2.9.6

事件冒泡简介

如下图,当我们点击页面某个元素时,会产生点击事件,事件由外到内,逐层递进(事件捕获阶段,途中的1->2->3->4),当目标元素捕捉到目标事件时,会响应事件,并由内到外,逐层往外传递(事件冒泡阶段,图中的4->5->6->7),这便是事件冒泡。正式因为冒泡机制,当用户点击图中目标元素div时,5,6,7事件区的元素都会响应点击事件(如果具备响应事件能力的话)

vue项目遇见事件冒泡如何处理

实验1

<template>

    <div>

        <div id="app" @click="fun1" style="padding:5px;border:2px solid #b7b766">

            div1

            <div @click="fun2" style="padding:5px;border:2px solid #79CDCD;">

                div2

                <div @click="fun3" style="padding:5px; border:2px solid #BEBEBE;">

                    div3

                    <div @click="fun4" style="border:2px solid #8470FF;">div4</div>

                </div>

            </div>

        </div>

    </div>

</template>

<script>

export default {

    methods: {

        fun1() {

            console.log("点击了div1");

        },

        fun2() {

            console.log("点击了div2");

        },

        fun3() {

            console.log("点击了div3");

        },

        fun4() {

            console.log("点击了div4");

        }

    }

    

};

</script>
 

实验结果如下:

 

vue项目遇见事件冒泡如何处理

实验2

实验1的基础上,修改下代码,如下,@click ="fun3"改成@click.stop="fun3"

        <div id="app" @click="fun1" style="padding:5px;border:2px solid #b7b766">

            div1

            <div @click="fun2" style="padding:5px;border:2px solid #79CDCD;">

                div2

                <div @click.stop="fun3" style="padding:5px; border:2px solid #BEBEBE;">

                    div3

                    <div @click="fun4" style="border:2px solid #8470FF;">div4</div>

                </div>

            </div>

        </div>

实验结果: 

点击div4,输出如下:

 

vue项目遇见事件冒泡如何处理

实验3

实验1的基础上,修改下代码,如下,@click="fun4"改成@click.stop="fun4"

       <div id="app" @click="fun1" style="padding:5px;border:2px solid #b7b766">

            div1

            <div @click="fun2" style="padding:5px;border:2px solid #79CDCD;">

                div2

                <div @click="fun3" style="padding:5px; border:2px solid #BEBEBE;">

                    div3

                    <div @click.stop="fun4" style="border:2px solid #8470FF;">div4</div>

                </div>

            </div>

        </div>

实验结果:

 

vue项目遇见事件冒泡如何处理

结论

综合实验1,2,3可知,如果想阻止哪个元素的事件冒泡(即事件只针对该元素有效),只要给该元素的事件增加.stop修饰符即可。文章来源地址https://www.toymoban.com/news/detail-407765.html

到了这里,关于vue项目遇见事件冒泡如何处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【小程序教程】微信小程序的事件处理和交互逻辑(tap logpress touchmove input submint事件&冒泡与捕捉最详细讲解)

    为什么要学习事件处理和交互逻辑? 事件处理和交互逻辑在小程序开发中扮演着至关重要的角色。以下是几个原因: 提升用户体验:良好的事件处理和交互逻辑可以使小程序更加易用和友好,提升用户体验。通过合理设置事件触发条件和交互效果,可以使用户操作更加顺畅

    2024年02月04日
    浏览(51)
  • 快速了解4种阻止事件冒泡的方法(原生js阻止,vue中使用修饰符阻止)

    前端结构 事件冒泡:clickSonBox事件发生时clickFatherBox事件也被触发了 此时点击子盒子 对话框弹出两次 方法1:使用js阻止事件冒泡 方法2:使用事件修饰符stop 绑定事件时,使用stop修饰符阻止事件冒泡 方法3:使用事件修饰符self 绑定事件时,使用self修饰符 表示只在本元素被点

    2024年02月16日
    浏览(35)
  • vue项目,如何区分开发环境、测试环境、正式环境

    在package.json文件中配置 serve和build有默认值。默认值development 和 production 测试环境通常就是开发环境,所以设置为\\\"build:test\\\": “NODE_ENV=development vue-cli-service build”, 这是在MacOS操作系统中,但是在window系统中不起作用 window上会提示 vue如何配置研发/测试/生产环境? 不用配置文件

    2024年01月19日
    浏览(42)
  • Vue中的事件处理

    一,基本使用 1.使用v-on:事件名或者@事件名绑定事件 常见的事件有: onclick , 鼠标单击事件;  ondblclick , 鼠标双击事件; onmousedown ,鼠标按下去的事件; onmouseup ,鼠标弹起事件; onmouseover , onmouseenter , onmouseout , onmouseleave ,  onmousemove  监控鼠标的移入移出,以及移动事件 onk

    2024年02月17日
    浏览(30)
  • 事件捕获和事件冒泡

    事件捕获和事件冒泡与事件流有关系。  以下代码,点击 aa ,控制台会打印什么呢?  这就是事件冒泡,从内层向外层传递事件流。 而事件捕获正相反,通过外层到内层。   阻止事件冒泡: e.stopPropagation() window.event.cancelBubble = true

    2024年02月11日
    浏览(30)
  • vue3 事件处理 @click

    vue3 事件处理 @click 传入多个函数,函数需要带上括号() 无stop:会触发 btnClick,再触发divClick 有stop:只触发btnClick 按下对应按钮,会触发对应事件 常用的按键 按键 解释 enter 回车 tab 切换 delete 删除 esc 退出 space 空格 up 向上 down 向下 left 向左 right 向右

    2024年02月12日
    浏览(48)
  • Vue教程(二):数据代理和事件处理

    数据代理 通过 obj2 操作 obj1 的对象 在浏览器控制台测试结果: 完整代码 总结 使用 v-on:xxx 或 @xxx 绑定事件,其中 xxx 是事件名 事件的回调需要配置在 methods 对象中,最终会在vm上 methods 中配置的函数,不要用箭头函数! 否在this就不是vm了 methods 中配置的函数,都是被vue所管

    2024年02月15日
    浏览(31)
  • Vue 事件处理详解:从基础到实战

    三级目录 在 Vue.js 中,事件处理是构建交互式用户界面的重要组成部分。Vue 提供了丰富的事件处理机制,使我们能够轻松地响应用户的操作并执行相应的逻辑。本文将深入探讨 Vue 的事件处理机制。 Vue 中使用 v-on 指令来绑定事件处理函数。通过在元素上使用 v-on:事件名 或简

    2024年02月08日
    浏览(27)
  • Vue 3.0 事件处理 【Vue3 从零开始】

    我们可以使用  v-on  指令 (通常缩写为  @  符号) 来监听 DOM 事件,并在触发事件时执行一些 JavaScript。用法为  v-on:click=\\\"methodName\\\"  或使用快捷方式  @click=\\\"methodName\\\" 例如: div id=\\\"basic-event\\\" button @click=\\\"counter += 1\\\"Add 1/button pThe button above has been clicked {{ counter }} times./p /div Vue.cre

    2024年02月04日
    浏览(43)
  • JS事件冒泡与JS事件代理(事件委托)

    通俗来讲,当触发(点击或者触摸之类的做法)有父元素的子元素的时候,事件会从事件源(被点击的子元素)开始逐级向上传播,触发父级元素的点击事件,一直会传到window。如果在某一层想要中止冒泡,使用 event.stopPropagation() 。下面见详细的代码: 我们可以发现,当点

    2024年02月09日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包