我对Javascript很新,我试图在一些下拉菜单上设置延迟。我加载了jQuery,目前正在使用延迟方法。然而,我做了一些环顾四周,似乎没有办法取消延迟计时器,这意味着我最终得到了一堆未崩溃的下拉菜单。
如何设置此项以便我可以设置延迟并在mouseout上取消?
这是我的代码(注意$$是用于jQuery noconflict):
$$(function(){
$$('#custommenu>div.menu').mouseover(function(){
$$('#custommenu>div.menu').removeClass('active');
$$('#popup'+$$(this).attr('id').replace('menu','')).delay(500).slideDown(100);
});
$$('#custommenu>div.menu').mouseout(function(){
$$('#custommenu .wp-custom-menu-popup').hide();
});
$$('#custommenu .wp-custom-menu-popup').mouseout(function(){
$$('#custommenu>div.menu').removeClass('active');
$$('#custommenu .wp-custom-menu-popup').hide();
});
$$('#custommenu .wp-custom-menu-popup').mouseover(function(){
$$('#menu'+$$(this).attr('id').replace('popup','')).addClass('active');
$$(this).show();
});
});
答案 0 :(得分:1)
在调用.hide()之前尝试在mouseout上添加$('#custommenu .wp-custom-menu-popup').stop(true, true)
。这应该清除动画的活动队列,并希望跳过所有延迟。