我只是尝试将所有节点附加到click事件。但我无法理解如何在onload
时添加它们。我只是想弄清楚从点击的地方到根节点的节点列表的完整路径。这是我的代码,我无法识别传递给addEvent()参数的内容。
function addEvent(node){ // i used this function in onload event
if(node == null) return;
node.onclick = catchClickedItem;
for(var i = 0; i < node.childNodes.length; i++){
addEvent(node.childNodes[i]);
}
}
function catchClickedItem(e){
alert(e.target);
}
我尝试添加addEvent:
window.onload = addEvent
我遇到了这个错误
Uncaught TypeError: Cannot read property 'length' of undefined
答案 0 :(得分:1)
为每个节点添加一个事件监听器是个坏主意。代替。也可以使用addEventListener
代替onclick
。
document.addEventListener("click", function(e) {
alert(e.target.innerHTML);
e.stopPropagation();
});
&#13;
<div>
<div>hello</div>
<div>
<div>world</div>
<div>
<div>foo</div>
</div>
</div>
</div>
&#13;