码迷,mamicode.com
首页 > 其他好文 > 详细

Vue之事件冒泡

时间:2017-10-22 00:21:28      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:content   back   eth   span   maximum   事件冒泡   oct   round   head   

1. 原生事件冒泡

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <title></title>  
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">  
    <meta name="apple-mobile-web-app-capable" content="yes">  
    <meta name="apple-mobile-web-app-status-bar-style" content="black">  
    <style>  
  
    </style>  
    <script src="vue.js"></script>  
    <script>  
        window.onload=function(){  
            new Vue({  
                el:#box,  
                data:{  
  
                },  
                methods:{  
                    show:function(ev){  
                        alert(1);  
                        //ev.cancelBubble=true;  
                    },  
                    show2:function(){  
                        alert(2);  
                    }  
                }  
            });  
        };  
    </script>  
</head>  
<body>  
    <div id="box">  
        <div @click="show2()">  
            <input type="button" value="按钮" @click="show($event)">  
        </div>  
    </div>  
</body>  
</html>

事件冒泡:

从内向外扩散,点击input,会扩散到外层的div,一直向上扩散。点击完按钮,会依次执行事件show()和show2()

结果:

先弹出1,后弹出2

使用原生js取消冒泡:ev.cancelBubble=true;

 

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <title></title>  
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">  
    <meta name="apple-mobile-web-app-capable" content="yes">  
    <meta name="apple-mobile-web-app-status-bar-style" content="black">  
    <style>  
  
    </style>  
    <script src="vue.js"></script>  
    <script>  
        window.onload=function(){  
            new Vue({  
                el:#box,  
                data:{  
  
                },  
                methods:{  
                    show:function(ev){  
                        alert(1);  
                        ev.cancelBubble=true;  
                    },  
                    show2:function(){  
                        alert(2);  
                    }  
                }  
            });  
        };  
    </script>  
</head>  
<body>  
    <div id="box">  
        <div @click="show2()">  
            <input type="button" value="按钮" @click="show($event)">  
        </div>  
    </div>  
</body>  
</html>  

点完按钮后,只弹出1来。

 

 

 

2.Vue中事件冒泡

取消事件冒泡:使用 .stop来取消事件冒泡

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <title></title>  
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">  
    <meta name="apple-mobile-web-app-capable" content="yes">  
    <meta name="apple-mobile-web-app-status-bar-style" content="black">  
    <style>  
  
    </style>  
    <script src="vue.js"></script>  
    <script>  
        window.onload=function(){  
            new Vue({  
                el:#box,  
                data:{  
  
                },  
                methods:{  
                    show:function(){  
                        alert(1);  
                    },  
                    show2:function(){  
                        alert(2);  
                    }  
                }  
            });  
        };  
    </script>  
</head>  
<body>  
    <div id="box">  
        <div @click="show2()">  
            <input type="button" value="按钮" @click.stop="show()">  
        </div>  
    </div>  
</body>  
</html>  

 

Vue之事件冒泡

标签:content   back   eth   span   maximum   事件冒泡   oct   round   head   

原文地址:http://www.cnblogs.com/chaofei/p/7706781.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!