【问题标题】:Why do custom events need to be dispatched to an object?为什么需要将自定义事件分派给对象?
【发布时间】:2014-03-27 20:49:11
【问题描述】:

我发现我可以将自定义事件分派给对象。

  1. 我想知道为什么需要将自定义事件分派给对象。

  2. 我想以设定的时间间隔触发一个事件,在阅读了关于自定义事件的文档后,我仍然没有弄清楚如何使用函数来触发它们。它是怎么做的?

例如,我想使用setInterval() 每 30 秒触发一次自定义事件“nextTime”。

【问题讨论】:

    标签: javascript events custom-events


    【解决方案1】:

    调度事件和触发事件是一样的,因为它们是自定义事件,它们永远不会被任何东西自然触发,所以你必须自己触发它们。要从区间触发事件,只需在区间内分派事件即可。

    你需要一个对象的原因是因为它是一个事件处理程序,如果它不附加到一个元素,你就不需要一个事件处理程序,你可以使用常规函数来代替。

    var event = new Event('custom'),
        elem  = document.getElementById('test');
    
    elem.addEventListener('custom', function (e) {
        console.log('custom triggered');
    }, false);
    
    setInterval(function() {
        elem.dispatchEvent(event);
    }, 30000);
    

    FIDDLE

    【讨论】:

    • 对不起#adeneo,我试图理解同样的概念。但是,根据您的解释,事件处理程序不是函数吗?只需使用设置的间隔并向其发送常规函数,我就可以获得相同的结果。那么为什么将事件附加到测试元素真的很有用呢?
    猜你喜欢
    • 2023-02-10
    • 2014-09-19
    • 2018-02-02
    • 2012-01-21
    • 1970-01-01
    • 2018-11-13
    • 2020-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多