2013-11-23 35 views
0

我完全是新的JQuery和JavaScript,可以真正使用一些帮助。jquery手风琴:关闭其他面板上打开指定的面板

我想放在一起有8个面板的手风琴,默认面板是#8。它在页面加载时打开。默认情况下,当我打开任何其他面板时,#8会关闭,除非我专门打开它,否则无论我打开或关闭哪个面板,它都会保持关闭状态。

我需要知道的是:每当我关闭一个打开的面板时,是否可以自动打开#8。

例如,我打开面板3,它关闭所有当前打开的面板。当我关闭面板3时,我想让面板8自动打开。

这可能吗?

谢谢

回答

1

是的,这是可能的。下面是使用jQuery UI的例子:

$(function() { 
    var activePanel = 2; //Set to the zero-based index of the panel you want to open 
    $("#accordion").accordion({ 
     collapsible: true, 
     active: activePanel, 
     activate: function(event,ui){ 
      //If a panel other than our default is collapsed 
      if(!ui.newPanel.length && $(this).find('.ui-accordion-content').index(ui.oldPanel) != activePanel){ 
       $(this).accordion('option','active',activePanel); 
      } 
     } 
    }); 
    }); 

Demo fiddle

+0

这并不工作,但它看起来并不大。通常情况下,如果您选择的面板不是打开的面板,则会在另一面板合同的同时开始展开。使用你的代码,直到另一个已经关闭之后才开始展开新的面板。 我不确定是否有任何解决方法。 –

+0

@ matthew_360我不知道你为什么看到这个,但在演示小提琴中,我看到两个面板都在同一时间动画 –

+0

它在我的小提琴中也是如此。至少对我来说,在Chrome,Firefox和IE中。我点击“第1部分”,该部分打开。然后我再次点击“第1部分”,该部分关闭,然后当它完成合同时,“第3部分”随即展开。 我的办公室里还有其他一些开发人员也在测试它们,他们都得到了同样的结果。 –