Я использую инструменты jquery + livequery. У меня есть горизонтальный аккордеон с 4 элементами. При начальной загрузке страницы они создаются PHP-скриптом, так что аккордеон прекрасно работает - открывается первая вкладка, и все скользит нормально. (как в этом примере: http://flowplayer.org/tools/demos/tabs/accordion-horizontal.html)
У меня есть событие таймера, которое перезагружает элементы аккордеона через JSON. Как только это происходит - вкладки не активируются. Я пытался прикрепить событие livequery после перезагрузки аккордеона, но не могу понять.
Структура такая:
<div id="accordion">
<div class="accordion_element>[tab content]</div>
<div class="accordion_element>[tab content]</div>
<div class="accordion_element>[tab content]</div>
<div class="accordion_element>[tab content]</div>
</div>
Я активирую аккордеон:
$("#accordion").tabs("#accordion .div_body", {
tabs: '.img_bgr',
effect: 'horizontal'
});
И это работает как шарм - первая вкладка расширяется, другие вкладки кликабельны и расширяются при нажатии. Затем каждую минуту я запускаю:
$.getJSON("accordion.php", function(json){
$.each(json, function(key, val) {
//-------parse json here and append each accordion_item (I empty the accordion prior)
$('#accordion').append(accordion_item);
});
});
Итак, на данный момент у меня есть красивый аккордеон, но он не активирован - это просто табы.
Как прикрепить событие livequery к следующему, чтобы оно влияло на все будущие обновления #accordion?
$("#accordion").tabs("#accordion .div_body", {
tabs: '.img_bgr',
effect: 'horizontal'
});
по сути, мне нужно иметь возможность назначать .live (или livequery) для .tabs, которые будут контролировать все клики и т. д.
на этой странице - http://flowplayer.org/tools/demos/tabs/accordion-horizontal.html
представьте, что 3 изображения + открытый текст перезагружаются с помощью json, а .tabs больше не влияет.
так (что, конечно, не работает)
$("#accordion").live( '.tabs', function(){
"#accordion .div_body", {
tabs: '.img_bgr',
effect: 'horizontal'
};