2011-03-13 65 views
1

我正在使用jQuery工具+ livequery。我有一個有4個元素的水平手風琴。在初始頁面加載時,它們是由PHP腳本創建的,所以手風琴的工作效果很好 - 第一個標籤打開,所有內容都可以正常滑動。 (就像在這個例子中:http://flowplayer.org/tools/demos/tabs/accordion-horizontal.htmlJquery工具(手風琴/標籤)+ LiveQuery

我有一個計時器事件,通過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' 
}; 
+0

我在這裏有一個答案 - 但它消失了..不知道如果我這樣做 - 如果我 - - 我很抱歉。迴應> .tabs是jQuery工具自帶的一個函數,它可以處理所有的點擊和事件。所以在上面的函數中,$(「#element_that_contains_tabs」)。選項卡(#element將作爲觸發器被公開點擊%,{tabs:%trigger%,effect} 如果我指派實時點擊.class - >它會多次觸發並且使用.tabs混亂,所以我在頁面上遍佈所有內容=)我試圖將它分配給#unique_id,但是我正在重新發明函數。 – vroomer 2011-03-13 21:28:55

回答

0

你試過嗎?

$("#accordion").livequery(function() { 
    $(this).tabs("#accordion .div_body", { 
    tabs: '.img_bgr', 
    effect: 'horizontal' 
});