Я использовал опцию «load», которую можно указать в виджетах jquery.ui.К сожалению, это плохо документировано, поэтому вы не увидите здесь опцию: http://jqueryui.com/demos/tabs/#options, например, но вы увидите ее здесь: http://jqueryui.com/demos/tabs/#method-load
Для большинствачасть, у каждого из методов, которые вы вызываете, есть начальная опция, которая может быть установлена, что побудило меня попробовать использовать загрузку.
В моем собственном приложении у меня есть 3 уровня вложенных вкладок, которые создаютсядинамически через AJAX.Чтобы динамически применять javascript для каждой вкладки, у меня есть вложенные функции загрузки, которые сначала запускаются при загрузке документа.
Итак, мой файл шаблона имеет:
<script type="text/javascript" src="{{ MEDIA_URL }}js/tabs.js"></script>
<script type="text/javascript">
$(function() {
$('.overall_tabs').tabs({
load: initializeOverallTabs
});
});
</script>
Мой файл tabs.js содержит:
function initializeOverallTabs(event, ui){
...
$('.lvl_two_tabs').tabs({
load: initializeTabLevel2
});
...
}
function initializeTabLevel2(event, ui){
...
// So on and so forth
...
}
Кроме того, я рекомендую при работе внутри загруженных областей, чтобы ваши ссылки были специфичными для этой панели.Это было чрезвычайно важно при работе с вкладками.Лучший способ сделать это - ниже.
В вашем файле tabs.js:
function initializeOverallTabs(event, ui){
$panel = $(ui.panel);
$panel.find('lvl_two_tabs').tabs(...);
}
Я нашел этот вопрос странным совпадением!Недавно я объяснил свое решение нескольким разработчикам в той же ситуации с той же средой Jquery / Django.Я надеюсь, что это помогло!