美文网首页
js,vue实现给元素绑定自定义事件

js,vue实现给元素绑定自定义事件

作者: 糖小羊儿 | 来源:发表于2021-03-16 10:45 被阅读0次

1.利用dispatchEvent给元素绑定自定义事件

dom.dispatchEvent(new Event('自定义事件名字'))
dom.addEventListener('自定义事件名字',()=>{})

<div id="box"></div>
<button onclick="btnClicked()">按钮</button>  

1.1 不用传参可以这么写

 function btnClicked(){
  //点击按钮 触发div的自定义事件
   document.querySelector('#box').dispatchEvent(new Event('aaa'));
 }
//利用addEventListener给div绑定自定义事件
document.querySelector('#box').addEventListener('aaa',function(){
    console.log('触发了自定义事件aaa')
})

1.2 如果需要传参可以使用CustomEvent实现

new CustomEvent(eventname, options)

//参数options:
{
  detail: {  },//键名必须是detail
  bubbles: true,    //是否冒泡
  cancelable: false //是否取消默认事件
}
 function btnClicked(){
    //触发自定义事件,并且传参
      var event = new CustomEvent("aaa", {"detail":{"username":123}});
      document.querySelector('#box').dispatchEvent(event);
}
//监听自定义事件,并且通过e.detail获取参数
document.querySelector('#box').addEventListener('aaa',function(e){
    console.log(e.detail) //{"username":123}
})

2.vue利用EventBus实现自定义事件

<div id="box"></div>
<button @click="btnClicked">按钮</button>
import Vue from "vue";
const EventBus = new Vue();
mounted() {
    //页面加载完绑定自定义事件
    EventBus.$on("aaa", (e) => {
      console.log(e)//{username:123}
    });
  },
  methods: {
    //点击按钮触发自定义事件
    btnClicked() {
      EventBus.$emit("aaa",{username:123});
    },
  },

相关文章

  • js,vue实现给元素绑定自定义事件

    1.利用dispatchEvent给元素绑定自定义事件 dom.dispatchEvent(new Event('...

  • vue 自定义组件双向绑定v-model

    'vue的双向绑定是针对表单元素,当然可以自定义组件实现双向绑定。(外部data的字段值赋值给自定义组件的属性,自...

  • vue.js学习第二天

    1、 vue事件绑定 在vue中给一个元素绑定事件可以用 v-on:+事件名称(click、mouseover、m...

  • Vue.js 双向数据绑定原理分析

    在使用Vue.js自定义组件时,很多时候,我们都期望数据是双向绑定的。 Vue.js实现双向数据绑定的两种方式 1...

  • vue事件与表单处理

    事件处理 v-on指令 用于进行元素的事件绑定 Vue.js 还为 v-on 指令提供了简写方式@click 事件...

  • screenX clientX pageX的区别

    在vue中,给元素绑定事件时,可以打印e(事件) 触摸事件(TouchEvent)和鼠标(MouseEvent)事...

  • vue.js学习笔记四

    Vue.js 样式绑定Vue.js class class 与 style 是 HTML 元素的属性,用于设置元素...

  • vue.js指令 逻辑运算符 分支结构 随机数

    vue.js指令 v-for=" 循环v-model='' 双向绑定,用于表单元素v-on:事件名=...

  • 事件

    js和html之间的交互是以事件实现的. 事件冒泡 事件开始的顺序从绑定事件的元素开始,逐级向父级元素传递. 我们...

  • 2018-04-18事件

    添加(绑定)事件方式1:通过HTML标签事件属性(不建议使用) 方式2:通过JS代码:先获取需要绑定事件的元素,给...

网友评论

      本文标题:js,vue实现给元素绑定自定义事件

      本文链接:https://www.haomeiwen.com/subject/zmurcltx.html