2011-03-13 75 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' 
});