Аккордеон jQuery и загружающееся содержание через Ajax

Если у вас есть еще один недостающий пакет nuget, который дает вашу ошибку при создании вашего решения, используйте следующую команду, используя командную консоль Nuget из меню «Инструменты»> «Диспетчер пакетов Nuget»> «Диспетчер пакетов». Он переустанавливает ваши текущие пакеты.

Update-Package -reinstall

BEWARE - это пакеты обновлений для всего решения, а не только проекта.

25
задан Russ Cam 14 March 2009 в 18:20
поделиться

4 ответа

Я только что сделал что-то подобное, и нашел, что прием должен был загрузить содержание из запроса ajax, как только DOM готов, и включите к аккордеону в функции обратного вызова запроса.

я попытался делать его с функцией загрузки jQuery, но испытал затруднения, законченные использовать функцию ajax вместо этого.

В Вашем случае с несколькими вызовами ajax, я предполагаю, что Вы могли вложить каждого в функции обратного вызова предыдущего. Который является действительно ужасно неэффективным способом сделать это, но если они - просто небольшие текстовые файлы, это должно быть в порядке.

пример следующим образом:

$.ajax({type:"get",url:"home.htm",success: function(data){
    $("#homeDiv").html(data);
    $.ajax({type:"get",url:"products.htm",success: function(data){
            $("#productsDiv").html(data);
            $("#accordion").accordion();
        }
    });
}});

, который должен сделать это...

6
ответ дан Josh Bones 15 October 2019 в 15:37
поделиться

Просто думая вне поля на мгновение, там какая-либо причина, Вы используете ajax для загрузки содержания? Выглядит от Вашего примера, по крайней мере, как будто содержание могло просто быть загружено первоначально и сделано с ним.

Что касается Вашего на самом деле вопрос, имейте Вас, попробовал что-то вроде этого:

var contentDiv = $(this).find("div");

или исследуемый какой-либо другой путь, которым Ваша загрузка могла бы вмешиваться в представление accordian дерева DOM? (например, пробуя загрузку более глубоко вложенного отделения)?

2
ответ дан MarkusQ 15 October 2019 в 15:37
поделиться

Я столкнулся с той же проблемой, пытаясь загрузить аккордеон на вкладки ajax с помощью JQuery UI. Аккордеон не может быть инициализирован до его уничтожения.

Вот пример кода javascript:

    $("#navigation").tabs({ 
    show: function(ui) {
        $('#browse').accordion('destroy').accordion({autoHeight: false, collapsible: true , active: false, header: 'h3'});
    } 
});
7
ответ дан 28 November 2019 в 18:29
поделиться

Это должно решить вашу проблему:

    $('#accordion').accordion({ 
    changestart: function(event, ui){
        var clicked = $(this).find('.ui-state-active').attr('id');
        $('#'+clicked).load('/widgets/'+clicked);
    }
});

Уловка состоит в том, что аккордеон изменяет классы живого контейнера, поэтому вы можете использовать .find () для поиска активного аккордеона и выполнения действие на нем.

10
ответ дан 28 November 2019 в 18:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: