就是两个框框重叠,通过事件修饰符来决定触发哪个事件.

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
    7. <title>Document</title>
    8. <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
    9. <style>
    10. .inner {
    11. height: 150px;
    12. background: blue;
    13. width: 300px;
    14. }
    15. .outer {
    16. padding-top: 20px;
    17. padding-left: 20px;
    18. height: 300px;
    19. width: 400px;
    20. background:brown;
    21. }
    22. </style>
    23. </head>
    24. <body>
    25. <div id="app">
    26. <!-- 默认会先调用里面的方法,在调用外面的方法,从里到外 .stop 阻止冒泡 -->
    27. <!-- <div class="inner" @click="innerclick">
    28. <input type="button" value="按钮" @click.stop="btnclick">
    29. </div> -->
    30. <!-- .capture 使用事件捕获,从外到里 -->
    31. <!-- <div class="inner" @click.capture="innerclick">
    32. <input type="button" value="按钮" @click="btnclick">
    33. </div> -->
    34. <!-- .self 实现只有点击自己才会执行 -->
    35. <!-- <div class="inner" @click.self="innerclick">
    36. <input type="button" value="按钮" @click="btnclick">
    37. </div> -->
    38. <!-- .prevent 阻止默认行为 -->
    39. <a href="http://www.baidu.com" @click.prevent="linkbaidu">跳转至百度</a>
    40. <!-- .prevent 阻止默认行为 .once 只会执行一次 可以串联使用-->
    41. <a href="http://www.baidu.com" @click.prevent.once="linkbaidu">跳转至百度</a>
    42. <!-- 演示.stop 跟 .self的区别 .self只会阻止自己,并不会阻止事件冒泡-->
    43. <div class="outer" @click="outerclick">
    44. <div class="inner" @click.self="innerclick">
    45. <input type="button" value="按钮" @click="btnclick">
    46. </div>
    47. </div>
    48. <br>
    49. <!-- 演示.stop 跟 .self的区别 .stop会阻止事件冒泡-->
    50. <div class="outer" @click="outerclick">
    51. <div class="inner" @click="innerclick">
    52. <input type="button" value="按钮" @click.stop="btnclick">
    53. </div>
    54. </div>
    55. </div>
    56. <script>
    57. var vm = new Vue({
    58. el: '#app',
    59. data: {},
    60. methods: {
    61. innerclick() {
    62. console.log("我是inner")
    63. },
    64. btnclick() {
    65. console.log("我是按钮")
    66. },
    67. linkbaidu() {
    68. console.log("跳转至百度")
    69. },
    70. outerclick(){
    71. console.log("我是outer")
    72. }
    73. }
    74. });
    75. </script>
    76. </body>
    77. </html>

    1.gif