簡體   English   中英

需要禁用下拉菜單(僅)的淡出功能

[英]need to disable fadeout function for the dropdown (only) menu

我在移動模式下的菜單有問題。 onClick會淡出。 我想保留此設置,但是我不希望它在單擊下拉部分時淡出。 這里是鏈接: http : //jsfiddle.net/zLLzrs6b/3/感謝您的幫助!

HTML:

<nav id="nav-wrap"> <a class="mobile-btn" href="#nav-wrap" title="Show navigation">Show Menu</a>
 <a class="mobile-btn" href="#" title="Hide navigation">Hide Menu</a> 
    <ul id="nav" class="nav">
        <li><a class="smoothscroll mobile" href="#about">about</a>
        </li>
        <li><a class="smoothscroll mobile" href="#documents">blog</a>
        </li>
        <li class="nav-item"><a href="#">dropdown</a> 
            <ul class="langop">
                <li><a href="#">otion 1</a>
                </li>
                <li><a href="#">otion 2</a>
                </li>
            </ul>
        </li>
    </ul>
</nav>

CSS:

.langop {
    display:none;
    position: relative;
    width:auto;
}
.nav-item:hover .langop {
    display: block;
}

Java的:

var toggle_button = $("<a>", {
    id: "toggle-btn",
    html: "Menu",
    title: "Menu",
    href: "#"
});
var nav_wrap = $('nav#nav-wrap')
var nav = $("ul#nav");


nav_wrap.find('a.mobile-btn').remove();
nav_wrap.prepend(toggle_button);

toggle_button.on("click", function (e) {
    e.preventDefault();
    nav.slideToggle("fast");
});

if (toggle_button.is(':visible')) nav.addClass('mobile');
$(window).resize(function () {
    if (toggle_button.is(':visible')) nav.addClass('mobile');
    else nav.removeClass('mobile');
});

$('ul#nav li a').on("click", function () {
    if (nav.hasClass('mobile')) nav.fadeOut('fast');
});

看到這個演示

$('ul#nav > li > a').on("click", function () {
    if (nav.hasClass('mobile')) 
        nav.fadeOut('fast');
});

使用event.target查找被單擊的元素,如果它是下拉部分,則不要隱藏

 var toggle_button = $("<a>", { id: "toggle-btn", html: "Menu", title: "Menu", href: "#" }); var nav_wrap = $('nav#nav-wrap') var nav = $("ul#nav"); nav_wrap.find('a.mobile-btn').remove(); nav_wrap.prepend(toggle_button); toggle_button.on("click", function(e) { e.preventDefault(); nav.slideToggle("fast"); }); if (toggle_button.is(':visible')) nav.addClass('mobile'); $(window).resize(function() { if (toggle_button.is(':visible')) nav.addClass('mobile'); else nav.removeClass('mobile'); }); $('ul#nav li a').on("click", function(e) { var target = $(".langop"); if (!target.is(e.target) //checking clicked item is the dripdown list && target.has(e.target).length === 0 //chekking clicked element is inside the dropdown && nav.hasClass('mobile')) { nav.fadeOut('fast'); } }); 
 .langop { display: none; position: relative; width: auto; } .nav-item:hover .langop { display: block; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <nav id="nav-wrap"> <a class="mobile-btn" href="#nav-wrap" title="Show navigation">Show Menu</a> <a class="mobile-btn" href="#" title="Hide navigation">Hide Menu</a> <ul id="nav" class="nav"> <li><a class="smoothscroll mobile" href="#about">about</a> </li> <li><a class="smoothscroll mobile" href="#documents">blog</a> </li> <li class="nav-item"><a href="#">dropdown</a> <ul class="langop"> <li><a href="#">otion 1</a> </li> <li><a href="#">otion 2</a> </li> </ul> </li> </ul> </nav> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM