0

Позвольте мне объяснить мою проблему. У меня есть событие mouseout, назначенное тегу 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 секунды */это где я хочу, чтобы увидеть, если мышь еще над календарным DIV или нет. Это то, что я не уверен в – phpNutt

+0

Да, хорошо, если вы проверите материал в «наведении на мышь» ниже, это фактически отменяет таймер, когда элемент снова наводится на мышь, так что это означает, что если этот код выполняется, вы знаете, что он не был наведен на 2 секунды, поэтому вы можете сделать это безопасно –

+0

Это должно работать до тех пор, пока вы не объявите переменную myTimeout вне сферы действия этих двух функций. –