Кликабельные древесные крошкиPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Кликабельные древесные крошки

Сообщение Anonymous »


Я работаю над древовидной структурой с раскрывающимся меню на основе AJAX. Код использует запросы jQuery и AJAX для загрузки и отображения уровней дерева. У меня возникла проблема при нажатии на элементы навигации для возврата на определенный уровень.

HTML-код выглядит следующим образом:
    Функции JavaScript выглядят следующим образом:

    $(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(данные); }); } }); Проблема в том, что последующие уровни не удаляются, а соответствующий уровень не загружается при нажатии на элемент навигации.

    Не заметил ли я ошибку в своем коде? Есть ли лучший способ обеспечить правильное обновление элементов навигации и загрузку соответствующего уровня?

    Буду признателен за любую помощь и предложения. Заранее спасибо!
    Ответить

    Быстрый ответ

    Изменение регистра текста: 
    Смайлики
    :) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
    Ещё смайлики…
       
    К этому ответу прикреплено по крайней мере одно вложение.

    Если вы не хотите добавлять вложения, оставьте поля пустыми.

    Максимально разрешённый размер вложения: 15 МБ.

    Вернуться в «Php»