温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用dispatchEvent自定义事件触发

发布时间:2021-07-12 09:27:29 来源:亿速云 阅读:193 作者:Leah 栏目:大数据

如何使用dispatchEvent自定义事件触发,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

window.addEventListener && window.dispatchEvent

一、标准浏览器提供了可供元素触发的方法:element.dispatchEvent(),在使用之前,需要创建和初始化,下面是具体的用法:

vue中举例:

1.通过 var event = document.createEvent("HTMLEvents"); 这个方法创建一个event对象实例
2.通过 event.initEvent("aaa", true, true); 初始化一个aaa事件,// 3个参数:事件类型,是否冒泡,是否阻止浏览器的默认行为

注意:/*属性,可以随便自己定义*/


event.name = 'hello, 我是小礼';
event.message = '我今年18岁';
  
3.然后通过 window.dispatchEvent(event); 方法触发自定义事件aaathis.$nextTick(tick => {     var event = document.createEvent("HTMLEvents");     event.initEvent("aaa", true, true);     window.dispatchEvent(event);})

4.最后在需要监听这个事件的页面,通过window.addEventListener('aaa', function(){});即可监听到事件的执行

window.addEventListener('aaa', function (event) {    console.log(event.name+','+event.message);}, false);

//控制台就可以打印出监听的结果:hello, 我是小礼,我今年18岁

dispatchEvent大概就是这三步

下面再看看一段代码,非IE主流浏览器及IE下的事件触发器

var fireEvent = function(element,event){      if (document.createEventObject) {          // IE浏览器支持fireEvent方法          var evt = document.createEventObject();          return element.fireEvent('on'+event,evt)      } else {          // 其他标准浏览器使用dispatchEvent方法          var evt = document.createEvent( 'HTMLEvents' );          evt.initEvent(event, true, true);          return !element.dispatchEvent(evt);      }};

document.creatEventObject()是IE创建event对象实例的方法,和document.creatEvent('HTMLEvents')在非IE主流浏览器下的作用相同,fireEvent是IE下的事件触发器,与dispatchEvent在非IE主流浏览器下作用相同。

看完上述内容,你们掌握如何使用dispatchEvent自定义事件触发的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI