说到JavaScript事件,我们首先就能想到click事件、submit事件等等。但是有时候这些预定义的事件并不能满足我们的需求,比如在提供给第三方的SDK中。
由于SDK运行的环境非常复杂,第三方业务中有什么代码我们无法预知,这可能会导致事件冲突的问题,这时候我们就需要自定义事件来避免此类冲突了。
下面是一个自定义事件的demo:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Event</title>
</head>
<body>
<button id="button" onclick="clickHere();">event</button>
<script>
// 监听document的testEvent事件
window.addEventListener("testEvent", function(obj){
console.log(obj.data);
alert("触发成功!")
});
function clickHere() {
// 创建自定义事件
var event = document.createEvent("HTMLEvents");
// 初始化testEvent事件
event.initEvent("testEvent", false, true);
event.data = {"click":true};
// 触发自定义事件
window.dispatchEvent(event);
}
</script>
</body>
</html>
文章不错非常喜欢
学习了
文章不错