只需单击一下即可显示响应式菜单

时间:2013-06-04 20:07:29

标签: jquery

我在点击.menubutton时显示(scrollDown)菜单,并在菜单中点击链接时再次隐藏(scrollUp)菜单:

var navi = $('#navigation').hide();

$('.menubutton').toggle(function() {
    navi.slideDown();
}, function() {
    navi.slideUp();
});

$('#navigation a').click(function() {
    navi.slideUp();
});

问题是,如果单击了菜单链接,则必须单击.menubutton以便再次显示(滚动)菜单。

知道为什么会这样吗?我希望.menubutton每次响应1次。

2 个答案:

答案 0 :(得分:2)

.menubutton正在进行切换。所以它调用一个函数,然后调用另一个函数,依此类推。不要使用.toggle,请尝试使用.slideToggle

$('.menubutton').click(function() {
    navi.slideToggle();
});

答案 1 :(得分:2)

您在点击导航元素时直接致电slideUp,因此.menubutton切换仍处于下次点击时也会调用slideUp的状态。请尝试改为调用.menubutton的{​​{1}}:

click