单击菜单项后,汉堡菜单返回3个链接

时间:2015-07-31 18:22:16

标签: javascript jquery html hamburger-menu

我有一个汉堡图标,当点击变成X.再次点击时会变回3行。我有它的工作,所以当点击链接菜单消失,但汉堡菜单不会返回3行。我没有尝试过任何工作。这就是我所拥有的。

var burgerIcon = $('.burger-icon');

function toggleBurger(){
    burgerIcon.click(function(){
        if(burgerIcon.hasClass("is-active") === true)
        {
            burgerIcon.removeClass("is-active");
            //console.log("remove");
        }
        else
        {
            burgerIcon.addClass("is-active");
            //console.log("add");
        }
    });
}

toggleBurger();

$('.toggle-nav').click(function() {
    $('body').toggleClass('show-nav'); 
    return false;
});

$('nav ul li > a').click(function(){
    //console.log("clicked");;
    $('body').trigger( "click" );
    burgerIcon.trigger( "click" );
});

HTML:

<nav>
<ul data-magellan-expedition="fixed">
                        <li data-magellan-arrival="work">
                            <a href="#work" class="hvr-sweep-to-right">Work</a>
                        </li>

                        <li data-magellan-arrival="about">
                            <a href="#about" class="hvr-sweep-to-right">About</a>
                        </li>

                        <li data-magellan-arrival="shadow">
                            <a href="#shadow" class="hvr-sweep-to-right">Shadow CC</a>
                        </li>

                        <li data-magellan-arrival="clients">
                            <a href="#clients" class="hvr-sweep-to-right">Clients</a>
                        </li>
                    </ul>
                </nav>

以下是我要解释的内容:jsFiddle

1 个答案:

答案 0 :(得分:2)

由于你在代码中使用jQuery,你可以利用它,然后你真正需要的所有东西我相信是这样的:

$('nav ul li > a,.c-hamburger').click(function () {
    console.log("clicked");
    $('body').toggleClass('show-nav');
    if ($('body').hasClass('show-nav')) {
        $('.c-hamburger').addClass("is-active");
    } else {
        $('.c-hamburger').removeClass("is-active");
    }
});

更新了小提琴:http://jsfiddle.net/qe38m0t9/2/

注意:这使用两个选择器,一个用于“汉堡包”,另一个用于由逗号分隔的菜单,然后根据点击的内容执行相同的操作。