Если у вас есть еще один недостающий пакет nuget, который дает вашу ошибку при создании вашего решения, используйте следующую команду, используя командную консоль Nuget из меню «Инструменты»> «Диспетчер пакетов Nuget»> «Диспетчер пакетов». Он переустанавливает ваши текущие пакеты.
Update-Package -reinstall
BEWARE - это пакеты обновлений для всего решения, а не только проекта.
Я только что сделал что-то подобное, и нашел, что прием должен был загрузить содержание из запроса 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();
}
});
}});
, который должен сделать это...
Просто думая вне поля на мгновение, там какая-либо причина, Вы используете ajax для загрузки содержания? Выглядит от Вашего примера, по крайней мере, как будто содержание могло просто быть загружено первоначально и сделано с ним.
Что касается Вашего на самом деле вопрос, имейте Вас, попробовал что-то вроде этого:
var contentDiv = $(this).find("div");
или исследуемый какой-либо другой путь, которым Ваша загрузка могла бы вмешиваться в представление accordian дерева DOM? (например, пробуя загрузку более глубоко вложенного отделения)?
Я столкнулся с той же проблемой, пытаясь загрузить аккордеон на вкладки ajax с помощью JQuery UI. Аккордеон не может быть инициализирован до его уничтожения.
Вот пример кода javascript:
$("#navigation").tabs({
show: function(ui) {
$('#browse').accordion('destroy').accordion({autoHeight: false, collapsible: true , active: false, header: 'h3'});
}
});
Это должно решить вашу проблему:
$('#accordion').accordion({
changestart: function(event, ui){
var clicked = $(this).find('.ui-state-active').attr('id');
$('#'+clicked).load('/widgets/'+clicked);
}
});
Уловка состоит в том, что аккордеон изменяет классы живого контейнера, поэтому вы можете использовать .find () для поиска активного аккордеона и выполнения действие на нем.