【发布时间】:2011-03-13 19:40:18
【问题描述】:
我正在使用 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'
};
【问题讨论】:
-
我在这里得到了答案-但它消失了..不知道我是否这样做了-如果我这样做了-对不起。响应 >.tabs 是 jquery 工具附带的一个函数,它自己处理所有点击和事件。所以在上面的函数中 - $("#element_that_contains_tabs").tabs (#element that will be visible as the trigger is clicked%, { tabs: %trigger%, effect} 如果我指定实时点击 .class -> 它会触发多次启动并与 .tabs 混淆,所以我在页面上到处都是东西 =) 我试图将其分配给 #unique_id,但我正在重新发明该功能。
标签: jquery accordion jquery-tools livequery