Events Mootools:当其他事件发生时,如何停止事件
我有一个关于mootools事件处理的问题 我想为下拉导航延迟鼠标事件。1秒后,drowdown列表将显示为“setStyle('display'、'block')……这是我到目前为止得到的,它正在工作:Events Mootools:当其他事件发生时,如何停止事件,events,mootools,mouseleave,mouseenter,Events,Mootools,Mouseleave,Mouseenter,我有一个关于mootools事件处理的问题 我想为下拉导航延迟鼠标事件。1秒后,drowdown列表将显示为“setStyle('display'、'block')……这是我到目前为止得到的,它正在工作: $('main-nav').getElements('li.level-1 ul.quick-nav').setStyle('display', 'none'); $('main-nav').getElements('li.level-
$('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事件将发生。我输入项目,立即离开项目,一秒钟后子项目仍然出现。因此,我需要在mouseenter ev中进行某种检查ent,我的菜单项是否已显示。然后,如果菜单项仍然不可见,我可以停止mouseenter事件…我不知道如何通过MouseeSave事件的功能响应mousenter事件…希望任何人都理解这一点
提前感谢。在mouseleave上使用计时器和
clearTimeout
(在旧版本的mootools中也是$clear(timer)
)
$('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');
var timer;
elem.addEvents({
'mouseenter': function(event) {
timer = (function() {
elem.getElement('.quick-nav').setStyle('display', 'block');
}).delay(1000)
},
'mouseleave': function(event) {
clearTimeout(timer);
elem.getElement('.quick-nav').setStyle('display', 'none');
}
});
});