我有一个关于 mootools 事件处理的问题。
我想为下拉导航延迟 mouseenter 事件。1 秒后,下拉列表将显示为“setStyle('display', 'block')...这是我到目前为止所得到的,它正在工作:
$('main-nav').getElements('li.level-1 ul.quick-nav').setStyle('display', 'none');
$('main-nav').getElements('li.level-1').each(function(elem){
var list = elem.getElement('.quick-nav');
elem.addEvents({
'mouseenter' : function(event){
(function() {
elem.getElement('.quick-nav').setStyle('display', 'block');
}).delay(1000)},
'mouseleave' : function(event){
elem.getElement('.quick-nav').setStyle('display', 'none');
}
});
});
我已经使用延迟功能延迟了 mouseenter 事件......我遇到但仍然无法解决的问题是 mouseenter 事件虽然会在我已经离开导航项时发生。我进入项目,立即离开项目,一秒钟后,子项目仍然出现。因此,我需要在 mouseleave 事件中进行某种检查,无论我的菜单项是否已显示。然后我可以停止 mouseenter 事件,如果 menuitem 仍然不可见...我不知道如何从 mouseleave 事件的函数响应 mouseenter 事件...希望有人理解这一点...
提前致谢。