На страничке при помощи innerHTML() динамически рисуется список HTML-элементов и ,динамически же, каждому из них назначается обработчик события: 
var lis = wrap.getElementsByTagName('li');
for(var i=0; i<lis.length; i++){
	lis[i].firstChild.onclick = function(){  //firstChild - это <span> такой (вроде кнопки)
		appendNewListHere();
	};
}
appendNewListHere() - рисует ещё один список внутрь текущего (получается список в списке).
Проблема в том, что когда вставляется внутренний список, то "слетает" обработчик "onclick" для элемента, который только что отрисовал вложенный список.
Мысль (почему это происходит): быть может это связано с тем, что поменялось DOM-дерево.
Почему это происходит на самом деле?