2011-07-20 24 views
0

我正在使用手风琴脚本,一些页面有子页面(关于方法,我们的工作),有些则没有。如果用户是一个页面,没有子菜单,我不希望另一个子菜单显示是(这是目前的情况下)无法让jquery手风琴关闭所有面板

网站: http://thegoodgirlsnyc.com/test/new/index3_7.php

中的jQuery的标题:

ddaccordion.init({ 
    headerclass: "headerbar", //Shared CSS class name of headers group 
    contentclass: "submenu", //Shared CSS class name of contents group 
    revealtype: "click", //Reveal content when user clicks or onmouseover the  header? Valid value: "click", "clickgo", or "mouseover" 
    mouseoverdelay: 200, //if revealtype="mouseover", set delay in milliseconds before header expands onMouseover 
    collapseprev: true, //Collapse previous content (so only one open at any time)? true/false 
    defaultexpanded: [], //index of content(s) open by default [index1, index2, etc] [] denotes no content 
    onemustopen: false, //Specify whether at least one header should be open always (so never all headers closed) 
    animatedefault: false, //Should contents open by default be animated into view? 
    persiststate: true, //persist state of opened contents within browser session? 
    toggleclass: ["", "selected"], //Two CSS classes to be applied to the header when it's collapsed and expanded, respectively ["class1", "class2"] 
    togglehtml: ["", "", ""], //Additional HTML added to the header when it's collapsed and expanded, respectively ["position", "html1", "html2"] (see docs) 
animatespeed: "normal", //speed of animation: integer in milliseconds (ie: 200), or keywords "fast", "normal", or "slow" 
oninit:function(headers, expandedindices){ //custom code to run when headers have initalized 
    //do nothing 
}, 
onopenclose:function(header, index, state, isuseractivated){ //custom code to run whenever a header is opened or closed 
    //do nothing 
} 

})

而且js文件:http://thegoodgirlsnyc.com/test/new/js/ddaccordion.js

我以为我可以广告DA新headerclass - “headerclass2”,并把它定义为headerbar2因为没有这些菜单项下拉的类名是.headerbar2和改线的实际JS文件#37 - 41说:

collapseall:function(headerclass2){ //PUBLIC function to collapse all headers based on their shared CSS classname 
    var $headers=this.headergroup[headerclass2] 
    this.contentgroup[headerclass2].filter(':visible').each(function(){ 
     $headers.eq(parseInt($(this).attr('contentindex'))).trigger("evt_accordion") 
    }) 
}, 

当用户点击没有子菜单的链接时,如何获取所有子菜单?

+0

你在说菜单,对吧? –

+0

是的,抱歉的混淆 – MLS1984

回答

0

我认为你遇到的问题是,由于设置:persiststate: true,,状态正在被保留。

看起来会发生什么是,而不是打开点击的标题栏(即沙龙)和关闭其他标题栏,它只是直接进入链接页面,因为没有子菜单。而且由于你坚持这个状态,打开的标题栏会在新页面上保持打开状态。

所以,我的建议是使用defaultexpanded选项,打开你想在特定页面打开的特定标题栏。然后,您可以关闭persiststate,让页面自己处理哪些标题栏应该展开。这可能需要多一点工作,但它可以很好地控制访问页面时默认打开哪些菜单。

+0

我不清楚如何使用defaultexpand选项。我已经在指定的位置输入页面,并且它似乎不起作用。 – MLS1984

+0

@ MLS1984:那么根据[本页](http://www.dynamicdrive.com/dynamicindex17/ddaccordion.htm)'defaultexpanded' =“默认应该打开的内容索引(s)格式[index1,index2等],其中0 =第1个内容,1 =第2个内容等。[]表示默认情况下不应打开内容。“我相信这意味着如果你通过,说'[3]',那么沙龙应该是“开放的”。我认为它是这样映射的:关于= 0,方法= 1,我们的工作= 2,沙龙= 3,说出= 4.我希望有所帮助。 –

+0

谢谢你的帮助。您的解决方案部分工作,但当您进入应打开子菜单的页面时,它们现在已关闭。 – MLS1984