stop阻止事件冒泡
prevent阻止默认事件
首先回顾一下什么是事件冒泡,当鼠标点击button按钮的时候,同时也点击了div,所以showInfo1和showInfo两个函数会同时被调用
<style> .a { height: 200px; background-color: skyblue; } </style>
<body> <div id="h1" v-on:click="showInfo1" class="a"> <button v-on:click="showInfo">点击</button> </div> <script type="text/javascript"> var vm = new Vue({ el: "#h1", methods: { showInfo() { alert("showInfo~") }, showInfo1() { alert("showInfo1~") } } }) </script> </body>
阻止事件冒泡:
<!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>Document</title> <script src="vue.js" type="text/javascript" charset="utf-8"></script> <style> .a { height: 200px; background-color: skyblue; } </style> </head> <body> <div id="h1" v-on:click="showInfo1" class="a"> <button v-on:click.stop="showInfo">点击</button> </div> <script type="text/javascript"> var vm = new Vue({ el: "#h1", methods: { showInfo() { alert("showInfo~") }, showInfo1() { alert("showInfo1~") } } }) </script> </body> </html>
prevent阻止默认事件
<!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>Document</title> <script src="vue.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div id="h1" v-on:click="showInfo1"> <a href="https://www.baidu.com" @click.prevent="showInfo">百度一下</a> </div> <script type="text/javascript"> var vm = new Vue({ el: "#h1", methods: { showInfo() { alert("showInfo~") } } }) </script> </body> </html>