如果在单击时添加事件侦听器,则会单击实际的元素,无论是添加侦听器的元素还是子元素。
但是,如果我对内容可编辑的元素上的input
,keyup
,keydown
或keypress
进行相同操作,则只会得到事件侦听器为即使子元素中发生输入,也不添加子元素。
当按键被按下时,如何获得子元素?
例如:在下面的内容可编辑div中单击单词“ Child”并键入,您将看到e.target
是div
,而不是span
:< / p>
document.getElementsByTagName("div")[0].addEventListener("click",function(e){
document.getElementsByTagName("b")[0].innerHTML = e.target;
});
document.getElementsByTagName("div")[1].addEventListener("input",function(e){
document.getElementsByTagName("b")[0].innerHTML = e.target;
});
Click:
<div>Parent
<span>Child</span>
</div>
<br>
Input:
<div contenteditable>Parent
<span>Child</span>
</div>
<br>
<div>Target:<b></b></div>