appendChild之后的addEventListener

时间:2014-01-22 19:54:33

标签: javascript dom

我使用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。)

2 个答案:

答案 0 :(得分:6)

你的方式非常好但是在使用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);

答案 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 ");
    }
}