javascript - jQuery Button 函数监听菜单打开/关闭状态改变状态

标签 javascript jquery

我有一个脚本,可以将汉堡菜单按钮从直线更改为单击时的 x .....我已经设置了一个简单的标志来更改它的 id,并认为这可以做得更好...

我想要做的是检查菜单的状态,并让按钮以 X(事件)或 3 行的形式“进行相应操作”...这是我的代码

document.querySelector( '.nav-toggle' )
  .addEventListener( "click", function() {
    this.classList.toggle( "active" );

  })

var toggle = function (funcA, funcB) {
    return function () {
        var flag = true;
        if (flag) {
            funcA();
        } else {
            funcB();
        }
        flag = !flag;
    };
};
$('.nav-toggle').click(toggle (function (){
    $('#menu').multilevelpushmenu( 'collapse' );
}, function (){
    $('#menu').multilevelpushmenu( 'expand' );
}));

这是按钮的 html...

<p><a class="nav-toggle" href="#"><span></span></a>Menu</p>

...我知道它应该相对简单,但我无法让它工作......仅供引用,我目前正在尝试这个......

$(document).ready(function() {
  $(".nav-toggle").toggle(
     function () {
         $( '#menu' ).multilevelpushmenu( 'expand' );
     },
     function () {
        $( '#menu' ).multilevelpushmenu( 'collapse' );
     },

   );

});

但这不起作用。非常感谢任何帮助。

最佳答案

尝试将toggle调用移至click事件handler函数内

$(document).ready(function () {

    $('#menu').multilevelpushmenu({
        onMenuSwipe: function () {
            var e = arguments[0];
            if ($(e.target).prop('tagName').toLowerCase() == 'input') return false;
        }
    });

    var toggle = function (funcA, funcB) {
        return function () {
            var flag = true;
            if (flag) {
                funcA();
            } else {
                funcB();
            }
            flag = !flag;
        };
    };

    $('.nav-toggle').click(function () {
        toggle(function () {
            $('#menu').multilevelpushmenu('collapse');
        }, function () {
            $('#menu').multilevelpushmenu('expand');
        })
    });
});

document.querySelector('.nav-toggle')
    .addEventListener("click", function () {
    this.classList.toggle("active");

});

jsfiddle http://jsfiddle.net/c5EA4/256/

关于javascript - jQuery Button 函数监听菜单打开/关闭状态改变状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30415768/

相关文章:

javascript - 如何自动向下滚动html页面?

javascript - 在页面之间来回移动时,它保留输入值而不是 jQuery 设置的文本

javascript - 访问其定义中的数组项,相对索引

javascript - 动态改变flot中的标记

javascript - 如何实现div block 高度的动态计算?

javascript - 使用 jQuery 防止双击链接

javascript - JS 中的变量重新分配问题,让我无法理解

javascript - XML解析选项-php或jquery

javascript - 导航到带有附加 header 的 URL

javascript - Jquery 切换/单击在 9 之前的 Safari 版本中不起作用