监听JavaScript中的自定义事件

时间:2020-08-29 10:04:21

标签: javascript

我正在阅读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这个词作为监听器。

1 个答案:

答案 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.