简体   繁体   中英

First open sub-menu second click go to page

I am trying to create a responsive menu. I want to create the following:

First click open sub-menu second click go to the page. I did create the following Javascript:

$('nav.mainmenu ul li').click(function (e) {
    if ($(this).parent().children('ul').is(':visible') != true) {
        $(this).parent().children('ul').show();
        e.preventDefault();
        return false;
    }
})

When I click one time the sub-menu opens and the href is not working but when I click the second time it still is not going to the page.

The HTML:

<nav class="mainmenu">
<ul id="menu-main-menu" class="menu">
    <li id="menu-item-135" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-135">
        <a href="https://www.vanderwou.bvdodev.nl/tours/">Tours</a>
        <ul class="sub-menu">
            <li id="menu-item-241" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-241"><a href="https://www.vanderwou.bvdodev.nl/tours/touringcarverhuur/"><i class="fas fa-chevron-right"></i> Touringcarverhuur</a></li>
            <li id="menu-item-239" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-239"><a href="https://www.vanderwou.bvdodev.nl/tours/events-samenmetdebus/"><i class="fas fa-chevron-right"></i> Events (samenmetdebus)</a></li>
            <li id="menu-item-240" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-240"><a href="https://www.vanderwou.bvdodev.nl/tours/schoolreizen/"><i class="fas fa-chevron-right"></i> Schoolreizen</a></li>
            <li id="menu-item-238" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-238"><a href="https://www.vanderwou.bvdodev.nl/tours/groepsdagtochten/"><i class="fas fa-chevron-right"></i> Groepsdagtochten</a></li>
        </ul>
    </li>
    <li id="menu-item-41" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-41">
        <a href="https://www.vanderwou.bvdodev.nl/contact/">Contact</a>
    </li>
</ul>
</nav>

So when someone clicks on Tours it should open the sub-menu below it and if the user then clicks Tours again it should go to the page /tours/ .

Thanks for your time!

Use .find(".sub-menu") to find submenu and then check if the submenu is visible show it else redirect to your given url

Demo Code :

 $(".sub-menu").hide(); //hide submenu $('.menu').click(function(e) { //check is submenu is not visible if ($(this).parent().find(".sub-menu").is(':visible').= true) { $(this).parent().find(".sub-menu");show(). //show it e;preventDefault(); return false; } })
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <ul id="menu-main-menu" class="menu"> <li id="menu-item-135" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-135"> <a href="https://www.vanderwou.bvdodev.nl/tours/">Tours</a> <ul class="sub-menu" data-value="avc"> <li id="menu-item-241" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-241"><a href="https://www.vanderwou.bvdodev.nl/tours/touringcarverhuur/"><i class="fas fa-chevron-right"></i> Touringcarverhuur</a></li> <li id="menu-item-239" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-239"><a href="https://www.vanderwou.bvdodev.nl/tours/events-samenmetdebus/"><i class="fas fa-chevron-right"></i> Events (samenmetdebus)</a></li> <li id="menu-item-240" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-240"><a href="https://www.vanderwou.bvdodev.nl/tours/schoolreizen/"><i class="fas fa-chevron-right"></i> Schoolreizen</a></li> <li id="menu-item-238" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-238"><a href="https://www.vanderwou.bvdodev.nl/tours/groepsdagtochten/"><i class="fas fa-chevron-right"></i> Groepsdagtochten</a></li> </ul> </li> <li id="menu-item-41" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-41"> <a href="https://www.vanderwou.bvdodev.nl/contact/">Contact</a> </li> </ul>

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