Вложенный список
Делаю бесконечную вложенность списка. При клике на li в нём создаётся новый список, в новом списке при клике на li опять создаётся новый список и так до бесконечности. Но, к сожалению, возникают баги, когда вложенность списка 3-го уровня и больше. Создаются лишние списки или создаются не в том элементе, где кликнуто и тд.
Сам скрипт:
function createElementsIn(parent, number) {
var ul = document.createElement("ul");
for(var i = 0; i < number; i++) {
var li = document.createElement("li");
li.innerHTML = i + 1;
li.onmousedown = function(element) {
return function() {
createElementsIn(element, 3);
}
}(li);
ul.appendChild(li);
}
parent.appendChild(ul);
}
window.onload = function() {
createElementsIn(document.body, 3);
}
В чём дело? |
конечно создаются лишние элементы, ведь событие поднимается по иерархии и запускает обработчики событий родителей
можно его остановить с помощью stopPropagation например
li.onmousedown = function(element) {
return function(e) {
e.stopPropagation();
createElementsIn(element, 3);
}
}(li);
|
mta88, спасибо. Почитал об этом тут
|
| Часовой пояс GMT +3, время: 18:08. |