简体   繁体   English

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

[英]Trouble getting jquery accordion to close all panels

I'm working off of an accordion script, some pages have sub pages (about, approach, our work) and some do not.我正在使用手风琴脚本,有些页面有子页面(关于,方法,我们的工作),有些没有。 If the user is on a page that there is no sub menu, I don't want another sub menu to show either (This is the current case)如果用户在没有子菜单的页面上,我也不希望显示另一个子菜单(这是当前情况)

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

The jquery in the the header: 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
}

}) })

And the js file: http://thegoodgirlsnyc.com/test/new/js/ddaccordion.js和js文件: http://thegoodgirlsnyc.com/test/new/js/ddaccordion.js

I thought I could add a new headerclass - "headerclass2" and define it as headerbar2 because the menu items that do not have drop down's class name is.headerbar2 and change the line in the actual js file # 37 - 41 to say:我想我可以添加一个新的 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")
    })
},

How can I get all of the sub menus to close when the user clicks on a link with no sub menus?当用户单击没有子菜单的链接时,如何关闭所有子菜单?

I think the issue you're running into is that the state is being persisted because of the setting: persiststate: true, .我认为您遇到的问题是 state 由于设置而被持久化:persiststate persiststate: true,

It looks like what happens is, rather than opening the clicked headerbar (ie. Salons) and closing the other headerbars, it just goes straight to the linked page since there's no submenu.看起来会发生什么,而不是打开单击的标题栏(即沙龙)并关闭其他标题栏,它只是直接进入链接页面,因为没有子菜单。 And since you're persisting the state, the open headerbar is staying open on the new page.并且由于您保留 state,因此打开的标题栏在新页面上保持打开状态。

So, my suggestion is to use the defaultexpanded option, to open the specific headerbar you want opened on the specific page.所以,我的建议是使用defaultexpanded选项,打开你想在特定页面上打开的特定标题栏。 You could then turn off persiststate and let the pages themselves handle which headerbar should be expanded.然后,您可以关闭persiststate并让页面自己处理应该展开的标题栏。 It may be a little more work, but it will give you fine control over which menus are open by default when visiting the pages.这可能需要更多的工作,但它可以让您更好地控制在访问页面时默认打开哪些菜单。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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