Показать сообщение отдельно
  #2 (permalink)  
Старый 31.08.2018, 15:32
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от __Alex__
Возможно при применении +=innerHTML затираются более ранние listener's?
Они не затираются...
Ты просто создаешь новые элементы. А у них нет обработчиков.

Вот твой аналог

<div id='main'></div>
<div id='out'></div>

<script>
var main = document.getElementById('main');
module1();
module2();

function module1() {
	main.innerHTML = '<div id="first">Some text, id=first </div><br />';
	alert(document.getElementById('first'))
	document.getElementById('first').addEventListener('click', function() {
		out('clicked on first id ');
	});
}
function module2() {
	main.innerHTML = '<div id="first">Some text, id=first </div><br />' + '<div id="second">Some text, id=second </div><br />';
	document.getElementById('second').addEventListener('click', function() {
		out('clicked on second id ');
	});
}
function out(data) {
	document.getElementById('out').innerHTML += data;
}
</script>
Ответить с цитированием