【问题标题】:How to make function2 run after function1 has already finished?如何在 function1 完成后让 function2 运行?
【发布时间】:2016-04-21 03:05:49
【问题描述】:

我正在开发侧边栏导航:当我们单击切换按钮时,侧边栏会打开,它会一直保持打开状态,直到我们再次单击切换按钮。 对于同一个侧边栏,我有一个悬停功能:在 mouseEnter 侧边栏打开和 onMouseLeave 侧边栏关闭。

我遇到的问题是关闭侧边栏 onClick。当我单击切换按钮上的关闭时,侧边栏保持打开状态,因为触发了 mouseEnter 功能。

我希望 mouseEnter 在导航栏关闭动画完成后准备就绪。

这是我的点击事件代码:

$('body').on('click', '.sidebar-toggler', function (e) {
            var sidebar = $('.page-sidebar');
            var sidebarMenu = $('.page-sidebar-menu');
        if (body.hasClass("page-sidebar-closed")) {
                    body.removeClass("page-sidebar-closed");
                    sidebarMenu.removeClass("page-sidebar-menu-closed");
                } else {
                    body.addClass("page-sidebar-closed");
                    sidebarMenu.addClass("page-sidebar-menu-closed");
                    if (body.hasClass("page-sidebar-fixed")) {
                        sidebarMenu.trigger("mouseleave");
                    }
    }

这是悬停事件的代码:

 if (body.hasClass('page-sidebar-fixed')) {
            $('.page-sidebar').on('mouseenter', function () {
                if (body.hasClass('page-sidebar-closed')) {
                    $(this).find('.page-sidebar-menu').removeClass('page-sidebar-menu-closed');
                }
            }).on('mouseleave', function () {
                if (body.hasClass('page-sidebar-closed')) {
                    $(this).find('.page-sidebar-menu').addClass('page-sidebar-menu-closed');
                }
            });
        }

【问题讨论】:

  • 为什么同样需要 click 和 mouseenter 事件?当您单击切换按钮时,会出现侧边栏......所以问题是为什么您需要 mouseenter 来打开侧边栏?
  • 为什么不呢?悬停只是为了在菜单上达到一个峰值,然后在 mouseLeave 上关闭它,而单击事件使菜单保持打开状态
  • 我认为使用click事件和mouseLeave事件就足够了,因为我不知道mouseenter的目的是什么,但如果是你的规范,我无能为力。尝试使用 off(),正如 juallom 在他的回答中所说的那样,但是你需要 offon 动态地处理事件,调试是一项艰巨的任务。

标签: javascript jquery html css sidebar


【解决方案1】:

当使用切换按钮打开侧边栏时,尝试 .off() mouseenter 事件。

http://api.jquery.com/off/

【讨论】:

  • 我现在去看看。谢谢
猜你喜欢
  • 2018-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多