覆盖导航菜单的preventDefault

时间:2013-06-07 17:39:09

标签: navigation override preventdefault

我正在建立一个带左侧导航菜单的网站。我正在使用JQuery来隐藏菜单的子元素,并在父菜单元素上使用preventDefault方法来阻止HTML操作。但是,这会阻止Home和Signout的父菜单导航链接。有没有办法可以根据html元素ID或event.Target做一个有条件的preventDefault?

我的JavaScript代码:

$(function() {
    var menu_ul = $('.menu > li > ul'),
        menu_a  = $('.menu > li > a');
    menu_ul.hide();
    menu_a.click(function(e) {
            e.preventDefault();
        if(!$(this).hasClass('active')) {
            menu_a.removeClass('active');
            menu_ul.filter(':visible').slideUp('normal');
            $(this).addClass('active').next().stop(true,true).slideDown('normal');
        } else {
            $(this).removeClass('active');
            $(this).next().stop(true,true).slideUp('normal');
        }
    });
});

我的HTML代码:

<nav>
    <ul class="menu">
            <li class="item1"><a href="home.cfm">Home</a></li>
            <li class="item2"><a href="#">Parent Menu 2</a>
                <ul>
                        <li class="subitem1"><a href="Page2.cfm">Child Menu 1</a></li>
                        <li class="subitem2"><a href="Page3.cfm">Child Menu 2</a></li>
                    </ul>
            </li>
        <li class="item3"><a href="#">Parent Menu 3</a></li>
        <li class="item4"><a href="#">Parent Menu 4</a>
                 <ul>
                        <li class="subitem1"><a href="#">Child Menu 1</a></li>
                        <li class="subitem2"><a href="#">Child Menu 2</a></li>
                        <li class="subitem3"><a href="#">Child Menu 3</a></li>
                    </ul>
                </li>
            <li class="item5"><a href="#">Parent Menu 5</a>
                    <ul>
                        <li class="subitem1"><a href="#">Child Menu 1</a></li>
                        <li class="subitem2"><a href="#">Child Menu 2</a></li>
                        <li class="subitem3"><a href="#">Child Menu 3</a></li>
                    </ul>
            </li>
        <li class="item6"><a href="#signout">Signout</a></li>
        </ul>
</nav>

任何建议表示赞赏。谢谢。

0 个答案:

没有答案