click.stop 阻止事件冒泡

`click` 和 `click.stop` 都是事件修饰符,用于处理鼠标点击事件。它们的区别在于:

  • `click` 修饰符用于监听鼠标点击事件,并触发相应的处理函数。如果在处理函数中使用了 `event.preventDefault()`,则会阻止默认的行为,例如阻止表单提交或链接跳转等。

  • `click.stop` 修饰符也用于监听鼠标点击事件,并触发相应的处理函数。但是,它会阻止事件继续传播,即阻止事件向上冒泡到父元素。这意味着,如果在一个嵌套的元素上使用了 `click.stop` 修饰符,那么当该元素被点击时,该元素上的处理函数会被触发,但是事件不会继续传播到父元素上。

例如,以下代码(Vue 版本)演示了如何在一个按钮上使用 `click` 修饰符来阻止表单提交:

javascript 复制代码
<template>
  <form @submit.prevent="submitForm">
    <button type="submit" @click.prevent="submitForm">Submit</button>
  </form>
</template>

<script>
export default {
  methods: {
    submitForm() {
      // 处理表单提交逻辑
    }
  }
}
</script>

在上面的代码中,当用户点击"Submit"按钮时,`submitForm` 方法会被调用,并且使用了 `prevent` 修饰符来阻止表单提交。

而以下代码演示了如何在一个嵌套的元素上使用 `click.stop` 修饰符来阻止事件冒泡:

javascript 复制代码
<template>
  <div @click="handleClick">
    <button @click.stop>Click me</button>
  </div>
</template>

<script>
export default {
  methods: {
    handleClick() {
      console.log('Div clicked');
    }
  }
}
</script>

在上面的代码中,当用户点击"Click me"按钮时,只会触发该按钮上的处理函数,而不会触发父元素上的处理函数。因此,控制台只会输出"Div clicked"一次。

相关推荐
海石3 小时前
📱随时随地大小编:TraeSolo 移动端初体验
前端·ai编程·trae
爱滑雪的码农4 小时前
详细说说React大型项目结构以及日常开发核心语法
前端·javascript·react.js
七牛开发者5 小时前
HTML is the new Markdown:来自 Claude Code 团队的实践
前端·人工智能·语言模型·html
@大迁世界5 小时前
43.HTML 事件处理和 React 事件处理有什么区别?
前端·javascript·react.js·html·ecmascript
CloneCello5 小时前
AI时代程序员认知调整指南
前端
ZC跨境爬虫6 小时前
跟着 MDN 学 HTML day_38:(DocumentFragment 文档片段接口详解)
前端·javascript·ui·html·音视频
@大迁世界7 小时前
41.ShadCN 是什么?它如何和 Tailwind CSS 集成,从而更容易构建可访问且可自定义的 React 组件?
前端·javascript·css·react.js·前端框架
千叶风行8 小时前
Text-to-SQL 技术设计与注意事项
前端·人工智能·后端
软件开发技术深度爱好者8 小时前
HTML5+JavaScript读取DOCX 文档完整内容
前端·html5
幽络源小助理8 小时前
苹果CMS V10 MXPro V4.5模版下载, 自适应视频主题源码, 幽络源源码
前端·开源·源码·php源码