【问题标题】:jQuery/ javascript after something has been clicked, then check for something elsejQuery / javascript 在点击某些东西后,然后检查其他东西
【发布时间】:2015-02-10 18:23:07
【问题描述】:

我正在使用一个名为 mmenu 的 jquery 插件在单击按钮时加载侧边菜单。 这很好用,但我也试图同时获得汉堡风格的图像。我从三行开始,然后当按下菜单按钮时它变成一个十字,这似乎有效。

我的问题是在尝试关闭菜单时出现,我希望它返回十字形。 mmenu 允许您单击任意位置以关闭菜单,但我无法让 jquery 有权将其更改回来。 我在单击按钮(.menuvate)时添加了一个类,称为“活动”,它显示十字,但无论我如何尝试,当在菜单后单击页面上的任何位置时,我都无法检查该类是否处于活动状态已打开。

这是我目前的代码

$('.menuvate').click(function(){

    $("#my-menu").trigger("open.mm");
    $("#mm-0").addClass("menu-opened");
    $("#nav-toggle").addClass("active");
});

$(document).click(function() {
    alert("me");
});

我只是设置了一个警报,告诉我它何时被触发,当然每次点击页面时它都会触发。 如何在再次单击页面时打开菜单后检查活动课程,以便我可以删除课程并将其改回?

谢谢。

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    您需要监听自定义事件以了解菜单是关闭还是关闭。

    基本上,你想要的是:

    $("#my-menu")
         .on( "closing.mm", function() {
            alert( "The menu has started closing." );
         })
         .on( "closed.mm", function() {
            alert( "The menu has been closed." );
         });
    

    http://mmenu.frebsite.nl/documentation/custom-events.html 上阅读有关 mmenu 解雇的更多信息

    【讨论】:

    • 谢谢,我现在去看看,不知道我是怎么在文档中错过的:/
    • 非常感谢,我现在可以使用了。谢谢。
    【解决方案2】:

    您可以使用 jQuery hasClass 属性。

     $("#mm-0").hasClass("menu-opened");
    

    【讨论】:

    • 是的,我知道我可以做到这一点,但我的问题是它在什么时候检查类,因为目前它通过文档 jquery 运行并且它没有得到那个类,并且在我打开菜单之后我不知道如何让它再次检查(希望这是有道理的)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 2014-05-12
    • 2010-09-22
    • 1970-01-01
    相关资源
    最近更新 更多