2012-03-20 39 views
1

Adi Palaz's Nested Accordion如何全部展開/全部摺疊使用阿迪Palaz的嵌套手風琴

這似乎應該是簡單,但我似乎無法弄清楚了這一點,我一直坐在這裏經過砰我的頭放在我的桌子像四個小時沒有解決方案。

您將有展開所有/摺疊該火功能打開所有的手風琴面板或全部關閉按鈕,頁面上的演示注意。

我不想使用這些按鈕。我想編寫自己的函數並在用戶完成頁面上其他位置的DIV上的手勢後觸發expand all或collapse all功能。

但我似乎無法弄清楚如何調用筆者使用上的按鈕來正確地展開和摺疊手風琴面板相同的功能。

如果有幫助,我建立了一個測試頁面一起玩: http://dl.dropbox.com/u/22224/Newfolder/nested_accordion_demo3.html

這裏是它需要工作兩個腳本:

Nested Accordion Script

Expand.js

請幫幫我!我很絕望,作者沒有回覆電子郵件!

回答

0

我面對完全相同的問題,並想知道如果你找到答案?

我打算使用的解決辦法是像$(「手風琴」。)點擊()。以編程方式單擊每個鏈接列表 - 不漂亮,但它似乎工作...

+0

不...不得不放棄代碼....從來沒有找到解決方案。我現在正在使用TinyAccordion。能夠修改代碼來處理特定部分的打開和關閉。它比這個代碼好10倍。 – Alex 2012-11-13 19:41:23

1

我能解決擴展/用下面的代碼關閉全部問題,希望它會爲你工作爲好。

function expand(id) { 
    var o = $.extend({}, $.fn.accordion.defaults, null); 
    var containerID = o.container ? id : '', objID = o.objID ? o.objID : o.obj + o.objClass, Obj = o.container ? containerID + ' ' + objID : id, El = Obj + ' ' + o.el, hTimeout = null; 
    $(El + ' a.trigger').closest(o.wrapper).find('> ' + o.next).show().closest(o.wrapper).find('a.trigger').addClass('open').data('state', 1); 
} 

function collapse(id) { 
    var o = $.extend({}, $.fn.accordion.defaults, null); 
    var containerID = o.container ? id : '', objID = o.objID ? o.objID : o.obj + o.objClass, Obj = o.container ? containerID + ' ' + objID : id, El = Obj + ' ' + o.el, hTimeout = null; 
    $(El + ' a.trigger').closest(o.wrapper).find('> ' + o.next).not('.shown').hide().closest(o.wrapper).find('a.open').removeClass('open').data('state', 0); 
} 

Example: 

expand('#accordion1'); 
collapse('#accordion1'); 
0

兩年後和我有同樣的願望......用阿迪Palaz嵌套手風琴,但有我自己的風格和具體的行動展開/摺疊所有按鈕。儘管我被公認爲新手級jquery程序員,但我終於按照我想要的方式工作。以下是我的主要經驗:

  • 我以示例nested_accordion_demo5.html和#acc1 爲例。我根本沒有使用expand.js,我從來沒有把它拿到 工作。
  • 我改變了我的demo5.html中的函數默認值來添加obj:「div」。

$("#acc1").accordion({ 
 
     obj: "div", 
 
     el: ".h", 
 
     head: "h4, h5", 
 
     next: "div", 
 
     iconTrigger: true 
 
    });

  • 然後,我添加與類= 「手風琴」 一個div圍繞整個UL結構和從UL除去手風琴類。
  • 我做了我自己的兩個展開/摺疊鏈接,並將它們放在div中但在ul之前。後來我想到了,並添加了造型,使他們看起來像按鈕,但首先我得到它的工作。

<a href="#" class="ExpandAll">[Expand All]</a>&nbsp;<a href="#" class="CollapseAll">[Collapse All]</a>

  • 然後,我添加了兩個新的獨立的事件處理程序使用從片段處理該a.trigger事件的一個jquery.nestedAccordion.js。我將它們立即放在現有的事件處理程序之後。這是我的新CollapseAll:

$(Obj).delegate('a.CollapseAll', ev, function(ev) { \t \t \t \t \t \t \t \t \t \t 
 
\t $(o.obj + o.objClass).find('a.trigger').each(function() { 
 
\t \t var $thislink = $(this), $thisWrapper = $thislink.closest(o.wrapper), $nextEl = $thisWrapper.find('> ' + o.next); 
 
\t \t if (($nextEl).length && $thislink.data('state') && (o.collapsible)) { \t 
 
\t \t \t $thislink.removeClass('open'); 
 
\t \t \t $nextEl.filter(':visible')[o.hideMethod](o.hideSpeed, function() {$thislink.data('state', 0);}); 
 
\t \t } 
 
\t }); \t \t 
 
});

  • 然後我做了第二次的事件處理程序,做了ExpandAll。

我知道這可能會更有效率,但我很激動至少讓它工作給我的技能水平!