2010-09-02 173 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/