javascript - 在 appendChild 之后添加 EventListener

标签 javascript dom

我创建了一个元素,eltTooltip , 与 document.createElement等并将其添加到 DOM 中( idTooltip 包含 ideltTooltip):

document.body.appendChild(eltTooltip);
var addedElt = document.getElementById(idTooltip);
addedElt.addEventListener("click", function(){...});

click保证会在此处添加事件,或者 DOM 可能还没有为此做好准备?

我能以更好的方式做到这一点吗? (该页面很久以前就加载了,所以 window.onload 无法使用。我不能在这里使用 jQuery。)

最佳答案

您的方法工作得很好,但最好在使用 eltTooltip 将事件监听器添加到 DOM 之前附加事件监听器。这使您无需从 DOM 中获取元素。

Demo

var idTooltip = 'test';
var eltTooltip = document.createElement('div');
eltTooltip.innerHTML = "test"
eltTooltip.setAttribute('id', idTooltip);
eltTooltip.addEventListener("click", function () {
    alert('click');
});

document.body.appendChild(eltTooltip);

关于javascript - 在 appendChild 之后添加 EventListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21292657/

相关文章:

javascript - 单击选择所有单选按钮

javascript - Backbone.js pushState 不工作并给出 404 错误

javascript - 脚本中模糊的div如何分配悬停点击

javascript - Cheerio 获取元素外部 html

javascript - 使用lodash在深路径处创建一个空对象

javascript - 当 AngularJS 返回 $http 结果时如何隐藏或显示菜单项

javascript - jquery 在单击单选按钮时添加和减去值

javascript - Angularjs ngRoute 不工作 : Uncaught Error: [$injector:modulerr]

JavaScript 对象属性为 "sometimes"未定义

javascript - 从上一级目录加载本地 javascript 文件