繁体   English   中英

无法让 jquery 手风琴关闭所有面板

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM