javascript - 单击函数在事件结束前触发函数

标签 javascript jquery

我构建了一个下拉菜单,如果单击菜单本身或正文中的任何位置,该菜单将使用 SlideUp 事件:

$('html, .currentPage').click(function() { 
    $('.currentMenu').slideUp('fast', function() { myFunction(); });
});

我在 SlideUp 事件回调中还有一个函数。

但是,我的问题是,无论是否发生了 SlideUp 事件,都会在 html 或 .currentPage 单击上调用该函数。

我怎样才能做到这个功能(); 在 SlideUp 事件运行时发生?

最佳答案

$('html, .currentPage').click(function() { 
    var $currentMenu = $('.currentMenu');

    if($currentMenu.is(':visible')) { 
        $currentMenu.slideUp('fast', function() { myFunction(); });
    }
});

更多

$('html, .currentPage').click(function() { 
    var $currentMenu = $('.currentMenu');

    if($currentMenu.is(':visible')) { 
        $currentMenu.slideUp('fast', myFunction);
    }
});

您还可以选择使用 $currentMenu.css('display') != 'none' 代替 $currentMenu.is(':visible')

这些选项是根据 slideUp() 的实际行为建议的,官方文档http://api.jquery.com/slideUp/中有描述。 .

关于javascript - 单击函数在事件结束前触发函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9526170/

相关文章:

javascript - 在 Node 脚本末尾运行行?

javascript - jQuery SubmitHandler 提示加载微调器

javascript - slider 在最后一张幻灯片上无法正常工作

javascript - 访问对象内数组的元素

javascript - 将 RequireJs 与自定义 JS 插件结合使用

jquery读取2类之间的一类数量

jquery - 使用 javascript 存储 future 数学的值

javascript - 禁用 Google 地球插件的用户交互

javascript - 使用 Moment.js,如何将时刻转换为日期或进行日历日期比较?

javascript - 下拉列表中选定的值在下拉列表中显示两次