2010-09-02 96 views

回答

0
var timer = null; 
element.addEvents({ 
    mouseenter: function() { 
    timer = setTimeout(foo, 5000); 
    }, 

    mouseleave: function() { 
    clearTimeout(timer); 
    } 

}); 

所以foo将被称为只有当光标超过元素,持续5秒

+0

我可以解决的代码变成这样?但我不知道笏与FOO .. this.menu.addEvents({ 的mouseenter取代:功能(事件){ \t \t计时器= setTimeout的(FOO,5000); obj.remain = []; obj.removeRemain(10) }, 鼠标离开:功能(事件){ \t \t clearTimeout(定时器); obj.remain.each(函数(项目){ item.addClass(obj.options.remainClass) }); obj.removeRemain(obj.options.remainTime) } }); – redcoder 2010-09-02 20:58:21

+0

'foo'是一个函数,如果光标位于元素上5秒 – fantactuka 2010-09-03 06:31:50

1

使用setTimeout,这不是MooTools的方式。你应该用的是框架的方法:

var theDiv = $$('div')[0]; 
var foo = function(){ 
    theDiv.highlight(); 
}; 
var timer; 

theDiv.addEvents({ 
    mouseenter: function() { 
     timer = foo.delay(1000); 
    }, 

    mouseleave: function() { 
     $clear(timer); 
    } 
});​ 

见工作例如http://www.jsfiddle.net/oskar/SZsNT/