Я уже читал о подобных проблемах, подобных этой топи c События на дочерних элементах contenteditable элемента , но я до сих пор не могу найти никакого решения.
https://jsfiddle.net/zbxg7jop/
HTML
<div id="main" contenteditable="true"> </div>
<button id="addLine">Add a line</button>
JS
var func_add_line = function() {
var div = document.createElement("div"),
texte = document.createTextNode("Click me now or use your keyboard on me");
div.appendChild(texte);
div.addEventListener("click",function(){ alert("Click is working") }, false);
div.addEventListener("keypress",function(){ alert() }, false);
document.getElementById("main").appendChild(div)
}
document.getElementById("addLine").addEventListener("click", func_add_line, false)
Я знаю, это потому, что только родительский элемент с атрибутом contenteditable
получает ключевые события , событие пузырится. И то же самое, если я использую event.target
.
Итак, есть ли обходное решение для того, что я пытаюсь сделать?
Спасибо!
РЕДАКТИРОВАТЬ: Хорошо , кажется, работает, если, по крайней мере, промежуточный контейнер между родителем и потомком не является contenteditable.
<div id="main" contenteditable="true">
<div id="intermediate" contenteditable="false">
<div class="appended" contenteditable="true"></div>
</div>
</div>
Таким образом, я могу захватить ключевые события из внутреннего DIV. Но есть другие проблемы, связанные с этим решением, поэтому все еще ищем обходной путь:)