【发布时间】:2026-01-16 20:20:03
【问题描述】:
我想在我的网页中将我的代码与我的 UI 分开,我想知道我是否可以使用一个事件来告诉我是否创建了一个元素,以便我可以在以下位置为其分配一个事件处理程序它的创建时间。
例如,如果我有两个元素,并且每个元素都有事件处理程序,我如何知道这些元素何时创建并添加它们?
到目前为止,我所做的是将文档的侦听器添加到addElement 事件(如果存在)。不知道有没有。如果是,请检查该元素是否与函数字典中的任何现有 id 匹配。所以是这样的:
来自单独脚本文件的代码:
<script>
// event handler for BorderContainer1282
function doSomething1() {
}
// event handler for Button925
function doSomething2() {
}
var clickHandlersDictionary = {};
clickHandlersDictionary["BorderContainer1282"] = doSomething1;
clickHandlersDictionary["Button925"] = doSomething2;
function createComplete() {
document.addEventListener("added", addElementEventHandlers);
}
function addElementEventHandlers(event) {
var element = event.currentTarget;
if (clickHandlersDictionary[element.id]!=null) {
element.addEventListener("click", clickHandlersDictionary[element.id]);
}
}
</script>
还有 HTML:
<body onReadyState="creationComplete()">
<div id="BorderContainer1282">
<input id="Button925" type="button" value="Button">
</div >
</body>
我认为我可能正在尝试做的是依赖注入,但我不确定。我最终可能会尝试支持状态,并且在创建 HTML 元素时需要添加和删除案例事件侦听器。
【问题讨论】:
标签: javascript html dependency-injection event-handling dom-events