<div id="outDiv" style="width: 100px; height: 200px; background-color: bisque;" contenteditable="true" oninput="handler1(event)" :tabindex="0">
外
<div id="innerDiv" style="width: 50px; height: 100px; background-color: aquamarine;" contenteditable="true" oninput="handler2(event)" :tabindex="1">内
</div>
</div>
<script>
function handler1(e) {console.log('外', e.target)}
function handler2(e) {console.log('内', e.target);e.stopPropagation();}
</script>
如上的嵌套div,都开启了contenteditable,但在innerDiv中输入内容,input事件,永远只触发了outDiv的handler1,handler2则从未触发过。
想要在innerDiv中输入时,只触发handler2,其它地方输入则触发handler1,需要怎么解决?
1、对内外层的div开启不同的事件,如内外层都监听keyup、keydown、input中的一种,且不重复,但还是只触发外层div的handler1;
2、把内层的contenteditable去掉,也同样是只触发handler1。