JavaScript 中的自定义事件

Custom event in javascript

本文关键字:事件 自定义 JavaScript      更新时间:2023-09-26

我知道有很多像我这样的问题,但我不认为这是重复的。

我想创建自己的自定义事件,例如 onresize 或 onshake。

我想创建一个库,然后我的库的用户只会写:

<script src="theLib.js" ></script>
<script>
window.addEventListener("shake",myFunc,false);
</script>

我在stackoverflow上看到了很多教程和问题,但是他们要么使用jQuery(我想要最简单的示例来创建自定义事件),要么用户不能只写window.addEventListener

您能解释一下添加自定义事件的最基本方法吗?

我终于找到了答案:

//Library part
var evt=document.createEvent("Event");
evt.initEvent("foo",true,true);
function blah()
{
    window.dispatchEvent(evt);
}
window.addEventListener("load",blah,false);
//User part
window.addEventListener("foo",function(){alert("Hi");},false);

您需要以某种方式触发该事件。这个答案给出了特别好的深度:如何在 JavaScript 中触发事件?

不过,您可能必须使用document而不是window