0

让我解释我的问题。我有一个mouseout事件分配给一个ID为日历的div标签。现在,当这个处理程序被调用时(当鼠标不在日历div上时),我想等待2秒钟,然后查看鼠标是否仍然不在日历div上。如果鼠标我仍然出来,然后做一个功能,如果没有,那么什么都不做。Javascript:Event Listener mouseout

我使用原型JavaScript库。 我的代码如下:

$('calendar').observe('mouseout', function (event){ 
    setTimeout(/* call this event again */, 2000); 
} 

感谢

回答

2
$('calendar').observe('mouseout', function(e) { 
    myTimeout = setTimeout(function() { /* stuff to do after 2 secs */, 2000); 
}); 

$('calendar').observe('mouseover', function(e) { 
    if(myTimeout) window.clearTimeout(myTimeout); 
}); 
+0

,你有/ *的东西后,2秒钟做* /这是我希望看到的,如果鼠标仍然在日历格或不。这就是我不知道的 – phpNutt 2009-11-17 14:09:53

+0

是的,好吧,如果您在下面的'mouseover'中查看了这些东西,那么当元素再次被鼠标移除时,这实际上会取消定时器,这意味着如果该代码执行,定义它在2秒内没有被鼠标悬停,所以你想要做什么,在那里做是安全的 – 2009-11-17 14:37:59

+0

只要你确定声明myTimeout变量超出这两个函数的范围,这应该工作。 – 2009-11-20 14:56:07