gpt4 book ai didi

javascript - 如何用Javascript实现一个完整的事件系统?

转载 作者:行者123 更新时间:2023-12-03 12:23:16 26 4
gpt4 key购买 nike

我正在创建一个客户端动态博客引擎。现在我需要一个事件系统来处理来自 DOM 元素和引擎的许多操作。比如引擎正在加载文章,用户正在切换主题......

而且我不想使用库来执行此操作。

到目前为止,我所做的是使用列表来存储事件的回调

但我希望每个回调都适用于不同的对象。例如 DOM 事件。

我可能会为每个对象添加一个类似id的属性,并将(id,callbacks)存储在一个事件中。我觉得这不太好。当动态生成对象时,处理起来可能会很复杂。

如何像DOM事件一样简单地实现(使用)?

最佳答案

Recently ,我想向普通 JavaScript 对象添加简单的事件监听器。这是我想出的解决方案

(这需要 ecmascript >= 5)

function Emitter () {
var eventTarget = document.createDocumentFragment();

function delegate (method) {
this[method] = eventTarget[method].bind(eventTarget);
}

Emitter.methods.forEach(delegate, this);
}

Emitter.methods = ["addEventListener", "dispatchEvent", "removeEventListener"];

现在是一个使用它的“类”

function Example () {
Emitter.call(this);
}

现在就来尝试一下吧!

var e = new Example();

e.addEventListener("something", function(event) {
alert("something happened! check the console too!");
console.log(event);
});

e.dispatchEvent(new Event("something"));

祝你好运!

关于javascript - 如何用Javascript实现一个完整的事件系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24342784/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com