无法让jquery手风琴关闭所有面板 [英] Trouble getting jquery accordion to close all panels

查看:83
本文介绍了无法让jquery手风琴关闭所有面板的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在处理手风琴脚本,有些页面包含子页面(关于,方法,我们的工作),有些则没有.如果用户在页面上没有子菜单,则我也不希望另一个子菜单显示(这是当前情况)

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)

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

标题中的jquery:

The jquery in the the header:

 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,因为没有下拉菜单的菜单项是.headerbar2,并更改实际js文件#37-41中的行以表示:

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:

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?

推荐答案

我认为您遇到的问题是,由于设置了persiststate: true,,该状态一直存在.

I think the issue you're running into is that the state is being persisted because of the setting: 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.

所以,我的建议是使用defaultexpanded选项,以打开要在特定页面上打开的特定标题栏.然后,您可以关闭persiststate并让页面自己处理应扩展哪个标题栏.可能需要做更多的工作,但是它将使您可以更好地控制在访问页面时默认情况下打开的菜单.

So, my suggestion is to use the defaultexpanded option, to open the specific headerbar you want opened on the specific page. You could then turn off persiststate and let the pages themselves handle which headerbar should be expanded. 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.

这篇关于无法让jquery手风琴关闭所有面板的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆