我正在阅读MDN网站上的一篇文章,该文章讨论如何自定义使用JavaScript https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events创建事件,并且我能够创建该事件
const evt = new CustomEvent("swipe", {
detail: {
color: "red"
}
});
documet.addEventListener("swipe", e => {
console.log(e.detail);
});
document.dispatchEvent(evt);
但是问题是,事件立即被触发,如何通过定义swipe
的实际含义来阻止此事件?例如,我希望在有人单击屏幕时触发该事件,但我仍然想使用swipe
这个词作为监听器。
答案 0 :(得分:4)
...我希望当有人单击屏幕时触发事件...
您将使用click
(或mousedown
)处理程序来触发您的swipe
事件:
document.addEventListener("click", e => {
document.dispatchEvent(new CustomEvent("swipe", {
detail: {
color: "red"
}
}));
});
实时示例:
document.addEventListener("click", e => {
document.dispatchEvent(new CustomEvent("swipe", {
detail: {
color: "red"
}
}));
});
document.addEventListener("swipe", e => {
console.log(e.detail);
});
Click anywhere on the document.