簡體   English   中英

點擊鏈接后,菜單不會崩潰

[英]menu don`t collapse after clicking link

我的折疊菜單存在一些錯誤問題。 當我在移動屏幕上的菜單上單擊某個菜單項時,菜單不會折疊。

JS代碼:

$(function() {  
    var pull = $('#pull');  
    menu = $('nav ul');  
    menuHeight = menu.height();  
    $(pull).on('click', function(e) {  
            e.preventDefault();  
            menu.slideToggle();
    });  
 });  
$(window).resize(function(){  
    var w = $(window).width();  
    if(w > 460 && menu.is(':hidden')) {  
       menu.removeAttr('style');  
    }  
});

HTML代碼:

<nav class="clearfix">  
    <ul class="clearfix">  
        <li><a href="#top">Top</a></li>  
        <li><a href="#about">About</a></li>  
        <li><a href="#sessions">Sessions</a></li>  
        <li><a href="#contact">Contact</a></li>
        <li><a href="login.html">Login</a></li>
        <li><a href="#" style="color:#43b3e0;">Menu 1</a></li>
        <li><a href="#" style="color:#43b3e0;">Menu 2</a></li>    
    </ul>  
    <a href="#" id="pull"><img style="width:30px; height:30px; margin-top:10px;" src="images/collapse.png"></a>
    <div class="logo">
        <img src="images/logo.png"> 
    </div> 
</nav>  

似乎觸發事件的唯一方法是對ID為“ pull”的元素的onclick。 也許您需要為每個“ a”元素添加相同的事件。 為了更好地控制“ a”元素,可以為每個元素分配一個ID。

實施例(HTML):

<ul class="clearfix">  
    <li><a id="aTop" href="#top">Top</a></li>

實施例(JS):

var link = $('#aTop');
.
.
.
$(link).on('click', function(e) {  
        e.preventDefault();  
        menu.slideToggle();
});  

檢查此鏈接

http://jsfiddle.net/H3KRk/5/

 //$('.nav > ul').toggleClass('no-js js'); $('.nav .js ul').hide(); $(document).on("click", function(e) { var $elem = $(e.target); if ($elem.hasClass('clicker')) { $('.nav .js ul').not($elem.next('ul')).hide(); $elem.next("ul").slideToggle(); } else { $('.nav .js ul').hide(); } }); 
 .nav { width:1024px; margin:0px auto 0px auto; background: #757575; /* Old browsers */ background: -moz-linear-gradient(top, #757575 0%, #474747 47%, #111111 47%, #000000 100%); /* FF3.6+ */ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#757575), color-stop(47%,#474747), color-stop(47%,#111111), color-stop(100%,#000000)); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(top, #757575 0%,#474747 47%,#111111 47%,#000000 100%); /* Chrome10+,Safari5.1+ */ background: -o-linear-gradient(top, #757575 0%,#474747 47%,#111111 47%,#000000 100%); /* Opera 11.10+ */ background: -ms-linear-gradient(top, #757575 0%,#474747 47%,#111111 47%,#000000 100%); /* IE10+ */ background: linear-gradient(to bottom, #757575 0%,#474747 47%,#111111 47%,#000000 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#757575', endColorstr='#000000',GradientType=0 ); /* IE6-9 */ } .nav ul { margin:0px 0px 0px 0px; padding:0px 0px 0px 0px; } .nav ul li { position:relative; display:inline; list-style:none; margin:0px 13px 0px 0px; padding:0px 0px 0px 0px; line-height:40px; cursor:pointer; } .nav ul li ul { position:absolute; left:0; right:0; width:1024px; padding:0px 0px 0px 0px; /*padding:14px 15px 14px 15px;*/ background:#f1f1f1; } .nav ul .clicker { background:none; } .nav ul .clicker:hover {} .nav ul li a { /*display:block; padding:8px 10px 8px 40px;*/ color:#ffffff; text-decoration:none; background:none; } .nav ul li a:hover { background:#F2F2F2; } .nav ul .active { background:#f00; } #contentHolder { padding:9px 13px 9px 13px; width:998px; background:#cccccc; } /* Fallbacks */ .nav .no-js ul { display:none; } /* .nav .no-js:hover ul { display:block; } */ .nav > .no-js > li:hover > ul { display:block; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> <div class="nav"> <ul class="no-js"> <li> <a class="clicker">Offers</a> <ul> <div id="contentHolder"> <li><a href="#">111</a></li> <li><a href="#">222</a></li> <li><a href="#">333</a></li> <li><a href="#">444</a></li> <li><a href="#">555</a></li> </div> </ul> </li> <li> <a class="clicker">Offers-2</a> <ul> <div id="contentHolder"> <li><a href="#">aaa</a></li> <li><a href="#">bbb</a></li> <li><a href="#">ccc</a></li> <li><a href="#">ddd</a></li> <li><a href="#">eee</a></li> </div> </ul> </li> <li><a class="clicker" href="#">All product</a></li> <li><a href="#" class="clicker">Glassworks/Artist</a></li> <li><a href="#" class="clicker">Series</a></li> <li><a href="#" class="clicker">Gift guide</a></li> <li><a href="#" class="clicker">About art glass</a></li> <li><a href="#" class="clicker">Outlet</a></li>--> </ul> </div><!-- end - nav --> 

菜單鏈接上沒有任何事件。

$('nav ul li').on('click', 'a', function(){
    menu.slideToggle();
})

暫無
暫無

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

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