简体   繁体   中英

Simple JQuery accordion menu

Hi I have a accordion menu in a wordpress site. The standard menu that came with the theme didn't do quite what I wanted so I've tried to customise it.

the javascript code is..

//DROPDOWN SCRIPT
$("#navbar > li").click(function(){
if(false == $(this).next().is(':visible')) {
    $('#navbar > ul').slideUp(300);
}
$(this).next().slideToggle(300);
});
$('#navbar > ul:eq(0)').show();

the css is...

#navbar {
list-style: none;
padding: 0 0 0 0;
width: 233px;
}

#navbar li{
text-align:center;
display: block;
font-weight: bold;
margin-bottom: 2px;
cursor: pointer;
list-style: circle;
height:29px;
line-height:normal;
}

#navbar ul {

list-style: none;
padding: 0 0 0 0;
display: none;

}

#navbar ul li{

font-weight: normal;
cursor: auto;
background-color: #fff;
padding: 0 0 0 7px;
line-height:normal;

}

#navbar a {
padding-top:5px;
text-decoration: none;
font-size: 19px;


}

#navbar a:hover {


}
#navbar li:first-child
{margin:2px 0 2px 0;
background:url(images/menuBG.png) 0px -90px;}

#menu-item-12{
background:url(images/menuBG.png) 0px -126px;}
#menu-item-13{
background:url(images/menuBG.png) 0px -163px;}
#menu-item-14{
background:url(images/menuBG.png) 0px -200px;}
#menu-item-15{
background:url(images/menuBG.png) 0px -236px;}
#menu-item-16{
background:url(images/menuBG.png) 0px -272px;}
#menu-item-17{
background:url(images/menuBG.png) 0px -344px;}
#menu-item-18{
background:url(images/menuBG.png) 0px -380px;}
#menu-item-30{
background:url(images/menuBG.png) 0px -416px;}
#menu-item-19{
background:url(images/menuBG.png) 0px -452px;}

#navbar li#menu-item-12 a, #navbar li#menu-item-13 a,#navbar li#menu-item-14 a, 
#navbar li#menu-item-29 a {
color:#76a443   }

the HTML is...

<ul id="navbar" class="menu">
<li id="menu-item-29" class="menu-item menu-item-type-custom
 menu-item-object-custom firstmenuitem"><a href="http://#" class="item"> Pests </a></li>
<li id="menu-item-51" class="menu-item menu-item-type-custom menu-item-object-custom">
<a> Products </a>
<ul class="sub-menu">
<li id="menu-item-22" class="menu-item menu-item-type-custom menu-item-object-custom">
<a href="#" class="item">Nemaslug</a></li>
<li id="menu-item-23" class="menu-item menu-item-type-custom menu-item-object-custom">
<a href="#" class="item">Vine Weevile Killer</a></li>
<li id="menu-item-24" class="menu-item menu-item-type-custom menu-item-object-custom">
<a href="#" class="item">NO ANTS!</a></li>
<li id="menu-item-25" class="menu-item menu-item-type-custom menu-item-object-custom">
<a href="#" class="item">Grow Your Own</a></li>
<li id="menu-item-52" class="menu-item menu-item-type-custom menu-item-object-custom">
<a href="http://LeatherJacketKiller" class="item">LeatherJacket Killer</a></li>
</ul>
</li>
<li id="menu-item-13" class="menu-item menu-item-type-custom menu-item-object-custom">
<a href="#" class="item"> Damage Identifier </a></li>
<li id="menu-item-14" class="menu-item menu-item-type-custom menu-item-object-custom">
<a href="#" class="item"> Pest Identifier </a></li>
<li id="menu-item-15" class="menu-item menu-item-type-custom menu-item-object-custom">
<a href="#" class="item"> About Nematodes </a></li>
<li id="menu-item-16" class="menu-item menu-item-type-custom menu-item-object-custom">
<a href="#" class="item"> Where to Buy </a></li>
<li id="menu-item-17" class="menu-item menu-item-type-custom menu-item-object-custom">
<a href="#" class="item"> Gardeners Forum </a></li>
<li id="menu-item-18" class="menu-item menu-item-type-custom menu-item-object-custom">
<a href="#" class="item"> Downloads </a></li>
<li id="menu-item-30" class="menu-item menu-item-type-custom menu-item-object-custom">
<a href="http://#" class="item"> News </a></li>
<li id="menu-item-19" class="menu-item menu-item-type-custom menu-item-object-custom
lastmenuitem"><a href="#" class="item"> Links </a></li>
</ul>               
<!-- Navbar ends here -->   
</div>
<!-- Menu ends here -->

It's not functioning properly, it's hiding the link below instead of displaying its sub links, if you click on "products" link you will see what I mean, there are 5 sub categories in products. but instead it hides the top level category below it.

The site is also up on a test url. http://test5.cr8tivejuice.co.uk

Try this

Css code

#navbar li{
    text-align:center;
    font-weight: bold;
    margin-bottom: 2px;
    cursor: pointer;
    list-style: circle;
    height:29px;
    line-height:normal;
    display: table;
    width: 100%;
}

Js code:

$("#navbar > li").click(function(){
  var child = '#' + $(this).attr('id') + ' > ul';
    $(child).slideToggle();
});
$('#navbar > ul:eq(0)').show();

And see this Example

Greetings.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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