我已经构建了一个下拉菜单,如果单击菜单本身或正文中的任何位置,则将使用slideUp事件:
$('html, .currentPage').click(function() {
$('.currentMenu').slideUp('fast', function() { myFunction(); });
});
我在slideUp事件回调中也有一个函数。
但是,我的问题是,无论是否发生了slideUp事件,都在html或.currentPage单击该函数。
我该怎么做呢function();仅当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/