[英]Trouble getting jquery accordion to close all panels
我正在使用手风琴脚本,有些页面有子页面(关于,方法,我们的工作),有些没有。 如果用户在没有子菜单的页面上,我也不希望显示另一个子菜单(这是当前情况)
网站: http://thegoodgirlsnyc.com/test/new/index3_7.php
header中的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
我想我可以添加一个新的 headerclass -“headerclass2”并将其定义为 headerbar2,因为没有下拉 class 名称的菜单项是.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")
})
},
当用户单击没有子菜单的链接时,如何关闭所有子菜单?
我认为您遇到的问题是 state 由于设置而被持久化:persiststate persiststate: true,
。
看起来会发生什么,而不是打开单击的标题栏(即沙龙)并关闭其他标题栏,它只是直接进入链接页面,因为没有子菜单。 并且由于您保留 state,因此打开的标题栏在新页面上保持打开状态。
所以,我的建议是使用defaultexpanded
选项,打开你想在特定页面上打开的特定标题栏。 然后,您可以关闭persiststate
并让页面自己处理应该展开的标题栏。 这可能需要更多的工作,但它可以让您更好地控制在访问页面时默认打开哪些菜单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.