js自定义事件

小咪咪 2023-06-21 05:56 15阅读 0赞

废话不多说看代码,一目了然

注意:监听一定要在触发之前,不然监听无效

  1. <div id="444" >自定义事件</div>
  2. var dom = document.getElementById('444');
  3. //监听事件
  4. document.addEventListener('myEvent', function (event) {
  5. console.log("事件被触发了: "+event)
  6. }, true);
  7. // 创建
  8. var evt = document.createEvent("HTMLEvents");
  9. // 初始化
  10. evt.initEvent("myEvent", false, false);
  11. // 触发
  12. dom.dispatchEvent(evt);

initEvent(eventName, canBubble, preventDefault)支持三个参数:
分别表示:
事件名称
是否可以冒泡
是否阻止事件的默认操作

dispatchEvent()
dispatchEvent()就是触发执行了

addEventListener
element.addEventListener(event, function, useCapture)
useCapture 可选。布尔值,指定事件是否在捕获或冒泡阶段执行。
true: 事件句柄在捕获阶段执行
false: 默认值。事件句柄在冒泡阶段执行

使用Event

  1. // 直接自定义事件,使用 Event 构造函数:
  2. var event = new Event('lookMe');
  3. var elem = document.querySelector('#id')
  4. // 监听事件
  5. elem.addEventListener('lookMe', function (e) { ... }, false);
  6. // 触发事件.
  7. elem.dispatchEvent(event);

使用CustomEvent

  1. // 监听事件
  2. obj.addEventListener("hitIt", function(e) { process(e.detail) });
  3. // 创建事件
  4. var event = new CustomEvent("hitIt", {"detail":{"hazcheeseburger":true}});
  5. //触发事件
  6. obj.dispatchEvent(event);
  7. //创建和触发事件(和上面的作用一样,可以替换上面的两步)
  8. 或者obj.dispatchEvent(new CustomEvent("hitIt", {"detail":{"hazcheeseburger":true}}));
  9. // 绑定自定义事件
  10. $(element).on('myCustomEvent', function(){});
  11. // 触发事件
  12. $(element).trigger('myCustomEvent');
  13. // 此外,你还可以在触发自定义事件时传递更多参数信息:
  14. $( "p" ).on( "myCustomEvent", function( event, myName ) {
  15. $( this ).text( myName + ", hi there!" );
  16. });
  17. $( "button" ).click(function () {
  18. $( "p" ).trigger( "myCustomEvent", [ "John" ] );

发表评论

表情:
评论列表 (有 0 条评论,15人围观)

还没有评论,来说两句吧...

相关阅读