Мне нужно загрузить панели аккордеона на одну из моих страниц с помощью AJAX, и я обнаружил, что JQuery «аккордеонизирует» все панели, определенные в файле HTML, но ни одна из панелей не загружается через Javascript. Еще одна маленькая причуда: я делаю это на вложенном аккордеоне — аккордеоне внутри аккордеона. Это начало аккордеона, если хотите.
Я проверил другие вопросы о переполнении стека и форум JQuery и обнаружил, что большинство из них касаются изменения размеров панелей после загрузки данных. Ближайший вопрос, который я нашел, был здесь, но он не отвечает мой вопрос, потому что попытка уничтожить, а затем повторно настроить мои панели, загруженные JS, не работает.
Это соответствующий раздел моего раздела заголовка html:
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/themes/flick/jquery-ui.css" type="text/css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/jquery-ui.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".accordion").accordion({
collapsible: true,
icons: false,
autoHeight: false,
active: false
});
});
</script>
Это соответствующий раздел моего раздела html body:
<div class="accordion">
<h3 id="acc1">First panel title</h3>
<div>First panel content</div>
<h3 id="acc2">Second panel title</h3>
<div class="accordion" id="ajaxresults-aliaslist">This is where the nested accordion goes</div>
<h3 id="acc3">Third panel title</h3>
<div>Thirdpanel content</div>
</div>
<script type="text/javascript">
$("#ajaxresults-aliaslist").load("/loadaliaslist/");
</script>
Когда javascript загружает "/loadaliaslist/", он получает сообщение следующего содержания:
<h3>1st panel within a panel title</h3>
<div>1st panel within a panel content</div>
<h3>2nd panel within a panel title</h3>
<div>2nd panel within a panel content</div>
<h3>3rd panel within a panel title</h3>
<div>3rd panel within a panel content</div>
Я знаю, что указанный выше контент передается в div, потому что при загрузке страницы контент выглядит неаккордеонизированным. Вместо аккордеона внутри аккордеона я просто получаю кучу скучного контента на первом уровне последовательности сновидений. Мне нужно спуститься на уровень ниже... Подождите, где я был?
Верно, еще кое-что: я попробовал две вещи, которые не сработали:
- Я попытался поместить и скрипт загрузки, и скрипт аккордеона внизу страницы (сначала загрузить), надеясь, что порядок будет иметь значение. (нубиш? не уверен...)
- Я попытался добавить скрипт в конце, чтобы уничтожить и воссоздать панели следующим образом:
$("#ajaxresults-aliaslist").accordion('destroy').accordion();
Это все. Я действительно надеюсь, что кто-то из аккордеонов Леонардо ДиКаприо сможет помочь мне выйти из затруднительного положения. Очень признателен!