单击菜单项后关闭jquery移动菜单

时间:2013-06-23 15:11:25

标签: jquery mobile navigation

基于此演示:http://webdesignerwall.com/demo/mobile-nav/这是我的代码。

<script type="text/javascript">
    jQuery(document).ready(function($){

        /* prepend menu icon */
        $('#nav-wrap').prepend('<div id="menu-icon"><img id="logo" src="<?php echo site_url(); ?>/wp-content/themes/blue-and-grey/images/mobileimages/hme_btn.png" /></div>');

        /* toggle nav */
        $("#menu-icon").on("click", function(){
            $("#nav").slideToggle();
            $(this).toggleClass("active");
        });

    });
    </script>

我需要的是单击菜单项后“关闭”的菜单,因为它是单页网站,我不希望它在点击后保持打开状态。我该怎么做?

非常感谢你!

3 个答案:

答案 0 :(得分:3)

添加额外的事件以实现它。单击某个菜单项时,您可以触发click #menu-icon

 $("#nav").on("click", "li", function () {
       $("#menu-icon").click();
       //or $("#nav").slideToggle();
 });

演示:http://jsfiddle.net/hungerpain/RtMNj/2/

答案 1 :(得分:0)

万一有人会偶然发现您使用Primefaces Mobile以及jQuery Mobile的问题,以下是我能够制定解决方法的方法,因为此处接受的解决方案无法解决问题我

基本上我只是放了一个“隐形”a标签,它将触发关闭弹出窗口。当用户点击其他菜单项时,它将执行指向该“隐身”click()标记的javascript a命令。

<ul data-role="listview" data-theme="c" data-divider-theme="a">
                    <li data-role="list-divider">Menu</li> 
                    <li data-icon="user">
                        <p:commandLink id="show-member-menu" styleClass="bordercolorddd"
                            value="Members" data-rel="back"  onclick="$('#closer').click();"
                            action="#{editROrgUnit.initializeSubordinateList}" 
                            update=":main:subordlist" process=":main:subordlist"/>
                    </li>
                    <li class="separator"><p:separator/><a id="closer" href="#" class="closerclass ui-btn ui-corner-all ui-shadow ui-btn-inline ui-btn-b" data-rel="back"/></li> 
                    <li data-icon="power">
                        <p:commandLink value="Logout" action="#{loginBean.logout}"
                            styleClass="bordercolorddd"
                            ajax="true" partialSubmit="true"
                            process="@this" />
                    </li>
                </ul>

答案 2 :(得分:0)

您可以使用$( "#nav" ).panel( "close" );