Я работаю над древовидной структурой с раскрывающимся меню на основе AJAX. Код использует запросы jQuery и AJAX для загрузки и отображения уровней дерева. У меня возникла проблема при нажатии на элементы навигации для возврата на определенный уровень.
HTML-код выглядит следующим образом:
$(document).ready(function(){ $.ajax({ URL: 'tree.php?action=loadInitialTreeHtml' }) .done(функция(данные){ $('#mainContainer').append(данные); $('#mainContainer > div').one('click', function(){ toggleChildNodes($(this).attr('data-id'), this, $(this).text()); }); }); }); функция toggleChildNodes(parentId, el, newBreadcrumbElementText) { $.ajax({ URL: 'tree.php?action=loadLayer&data[]=' + ParentId }) .done(функция(данные){ const $breadcrumb = $('#breadcrumb'); const $breadcrumbContainer = $('#breadcrumb-container'); $breadcrumbContainer.show(); $breadcrumb.find('.active').removeClass('active'); $breadcrumb.append('[*]' + newBreadcrumbElementText + ''); if ($(el).hasClass('карта')) { $(эл).html(данные); $(el).find('>li').one('click', function(){ toggleChildNodes($(this).attr('data-id'), this, $(this).text()); }); } еще { const $parent = $(el).parents(".card"); $parent.html(данные); $parent.find('>li').one('click', function(){ toggleChildNodes($(this).attr('data-id'), this, $(this).text()); }); } }); } $('#breadcrumb').on('click', 'li:not(.active)', function() { константа $это = $(это); constparentID = $this.data('parent-id'); $this.nextAll('li').remove(); $this.addClass('active').siblings().removeClass('active'); $('#mainContainer > div').html(''); if (parentID !== не определено) { toggleChildNodes(parentID, this, $this.text()); } еще { $.ajax({ URL: 'tree.php?action=loadInitialTreeHtml' }).done(функция(данные) { $('#mainContainer').html(данные); }); } }); Проблема в том, что последующие уровни не удаляются, а соответствующий уровень не загружается при нажатии на элемент навигации.
Не заметил ли я ошибку в своем коде? Есть ли лучший способ обеспечить правильное обновление элементов навигации и загрузку соответствующего уровня?
Буду признателен за любую помощь и предложения. Заранее спасибо!
Мобильная версия