我使用eltTooltip
等创建了一个元素document.createElement
,并将其添加到DOM中(idTooltip
包含id
eltTooltip
):
document.body.appendChild(eltTooltip);
var addedElt = document.getElementById(idTooltip);
addedElt.addEventListener("click", function(){...});
这里是否保证click
事件被添加,或者DOM可能没有为此做好准备?
我能以更好的方式做到这一点吗? (页面很久以前就加载了,所以window.onload
无法使用。我不能在这里使用jQuery。)
答案 0 :(得分:6)
你的方式非常好但是在使用eltTooltip
将事件监听器添加到DOM之前附加事件监听器可能更好。这样可以避免从DOM中获取元素。
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);
答案 1 :(得分:1)
你可以做这样的事情
window.onload = function (){
var toolTip = document.createElement('div');
toolTip.innerHTML = "someData";
toolTip.addEventListener('click', myfunction);
document.body.appendChild(toolTip);
function myfunction(){
alert("hello guys ");
}
}