方法和事件绑定

    <div class="box">
      <!-- 事件绑定 用v-on 后面跟事件触发形式 -->
      <button v-on:click="fn">点击打印</button>
      <!-- 语法糖直接在事件前面加@符号 -->
      <button @click="fm">点击打印</button>
    </div>
    <script>
      new Vue({
        el: ".box",
        data: {},
        // 方法统一放在methods中 供事件或者别的方法调用 由于是做了es6语法处理的 所以所有方法的写法都可以 需要注意的是箭头函数因为this的原因 一般不建议使用
        methods: {
          fn() {
            console.log(6666);
          },
          fm: () => {
            console.log(7777);
          },
          fc: function () {
            console.log(8888);
          },
        },
      });
    </script>

写一个冒泡的经典样式

由事件链可知 当点击box3时 也会触发box1和box2的点击事件 

      .box1 {
        width: 150px;
        height: 150px;
        background-color: aqua;

      }
      .box2 {
        width: 100px;
        height: 100px;
        background-color: rgb(255, 157, 0);
      }
      .box3 {
        width: 50px;
        height: 50px;
        background-color: rgb(212, 71, 10);
      }
   <div id="box">
      <div class="box1" @click="fn">
        1
        <div class="box2" @click="fm">
          2
          <div class="box3" @click="fc">3</div>
        </div>
      </div>
    </div>
    <script>
      new Vue({
        el: "#box",
        data: {},
        methods: {
          fn() {
            console.log(1);
          },
          fm() {
            console.log(2);
          },
          fc() {
            console.log(3);
          },
        },
      });
    </script>

 

 事件修饰符

.self  其他元素的事件触发时 事件链经过它,无论是捕获还是冒泡阶段都不会触发它的事件,只有它自己是精准对象才会触发事件,  虽然它自己不会被别人影响,但是它自己的事件触发的时候还是会生成事件链经过其他元素,并不阻止继续冒泡到其他元素 此时点击box2就不会打印1 但是冒泡事件并没有被阻止

   <div class="box1" @click.self="fn">

 .once 事件只触发一次,触发完之后,事件就解绑 点击一次后就会失效

    <div class="box2" @click.once="fm">

.stop可以阻止冒泡 此时点击box3 就只会打印3  然后冒泡被阻止 1 2不会被打印

<div class="box3" @click.stop="fc">3</div>

  .prevent 阻止默认事件

      <a href="http://www.baidu.com" @click.prevent>百度</a>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思考猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值