首页 > 其他 > 详细

vue事件修饰符

时间:2020-08-20 10:28:51      阅读:56      评论:0      收藏:0      [点我收藏+]

1、冒泡与捕获:

冒泡:由内向外触发;捕获:由外向内触发

技术分享图片

 2、修饰符

(1).stop修饰符:阻止事件冒牌,不让他向外触发

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="vue.js" type="text/javascript"  charset="UTF-8"></script>
    </head>
    <body>
        <div id ="element1">
            <div  @click="test1">
                <span>测试1</span>
                <div  @click.stop="test2">
                  <span>测试2</span>
                </div>
              </div>
        </div>
          <script type="text/javascript">
              var vm = new Vue({
                  el : "#element1",
                  // data:{
                      
                  // },
                  methods:{
                      test1:function(){
                          console.log("click1");
                        
                      },
                      test2:function(){
                          console.log("click2");
                      }
                  }
              })
          </script>
    </body>
</html>
结果:不添加.stop会输出click2,click1,添加.stop后只显示click2

 

 (2).capture 捕获事件,点击子节点,会从外向内触发

输出结果顺序变成:点击测试2,输出click1,click2

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="vue.js" type="text/javascript"  charset="UTF-8"></script>
    </head>
    <body>
        <div id ="element1">
            <div  @click="test1">
                <span>测试1</span>
                <div  @click.stop="test2">
                  <span>测试2</span>
                </div>
              </div>
        </div>
          <script type="text/javascript">
              var vm = new Vue({
                  el : "#element1",
                  // data:{
                      
                  // },
                  methods:{
                      test1:function(){
                          console.log("click1");
                        
                      },
                      test2:function(){
                          console.log("click2");
                      }
                  }
              })
          </script>
    </body>
</html>

(3).self只会触发自己范围内的事件,不会包含子元素

(4).once,只要点击按钮只会执行一次

结果:无论点击多少次click2,只会在第一次点击输出 click2  ,click1 

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="vue.js" type="text/javascript"  charset="UTF-8"></script>
    </head>
    <body>
        <div id ="element1">
            <div  @click.once="test1">
                <span>测试1</span>
                <div  @click.once="test2">
                  <span>测试2</span>
                </div>
              </div>
        </div>
          <script type="text/javascript">
              var vm = new Vue({
                  el : "#element1",
                  // data:{
                      
                  // },
                  methods:{
                      test1:function(){
                        
                          console.log("click1");
                        
                      },
                      test2:function(){
                        
                          console.log("click2");
                      }
                  }
              })
          </script>
    </body>
</html>

 

vue事件修饰符

原文:https://www.cnblogs.com/CXMS/p/13530352.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!