stopPropagation() 事件方法
stopPropagation() 方法防止调用相同事件的传播。
传播意味着向上冒泡到父元素或向下捕获到子元素。
<template> <div> <div v-show="statusPanelShow" :style="statusSelectStyle" ref="statusPanel" class="status_panel"> <p v-for="item, index in statusList" :key="item" :class="activeStatusIndex === index+1 ? 'status_active': ''" @click="changeCaseStatus(index+1)">{{ item }}</p> </div> </div> </template> <script> export default {
//父组件中通过provide来提供变量,然后在子组件中通过inject来注入变量
provide() {
return {
main: this
}
},
mounted() { this.$refs.statusPanel.addEventListener('wheel', (e) => { e.stopPropagation() }); this.$refs.statusPanel.addEventListener('mousedown', (e) => { e.stopPropagation() }); this.$refs.statusPanel.addEventListener('mousewheel', (e) => { e.stopPropagation() }); }, methods: { changeCaseStatus(index) { this.activeStatusIndex = index window.minder.execCommand('status', index) this.statusPanelShow = false }, } } </script>
<template lang="html"> <div class="mind-editor"></div> </template> <script> export default { inject: ['main'], mounted() { window.minder = window.km = editor.minder; // 显示用例状态选项 window.minder.on('showStatusMenu', this.showStatusPanel); document.addEventListener('wheel', this.main.hideStatusPanel); document.addEventListener('mousedown', this.main.hideStatusPanel); document.addEventListener('mousewheel', this.main.hideStatusPanel); this.$once('hook:beforeDestroy', () => { document.addEventListener('wheel', this.main.hideStatusPanel); document.addEventListener('mousedown', this.main.hideStatusPanel); document.addEventListener('mousewheel', this.main.hideStatusPanel); }); }, } </script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律