Консультация № 140793
27.07.2008, 01:00
0.00 руб.
0 7 0
Здравствуйте!

Как определить, что мыша находится над каким-либо элементом некоторое время, и только после этого запускать обработчик onmouseover?

Обсуждение

давно
Старший Модератор
31795
6196
28.07.2008, 11:32
общий
Идея такая:
Код:
 onmouseover="ValTimeOver=SetTimeout('NewMouseOver;',100);" onmouseout="ClearTimeout(ValTimeOver);"

Есть глобальная переменная ValTimeOver, которая устанавливается на таймаут при событии onmouseover и сбрасывается при событии onmouseout. Если сборосить раньше, то вызова обработчика не будет.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Неизвестный
28.07.2008, 12:17
общий
Спасибо!
Неизвестный
31.07.2008, 16:07
общий
Продолжение. Как объединить с функцией?

childLi.onmouseover="ValTimeOver=SetTimeout('extract(extractID, childLi.id)',1000)";
childLi.onmouseout="ClearTimeout(ValTimeOver)";

Не выходит.
давно
Старший Модератор
31795
6196
01.08.2008, 11:09
общий
что-то я не помню такую функцию в JS.
если Вам нужно получить id данного контейнера, то используте this , в функцию будет передаватся текущий id .
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Неизвестный
01.08.2008, 17:11
общий
Это моя функция.
Но при таком синтаксисе не работает.
Что не так?
давно
Старший Модератор
31795
6196
01.08.2008, 17:34
общий
Так попробуйте:
Код:
 < a . . .  onmouseover="goTimer;"
onmouseout="stopTimer;"> . . . </a>
<script >
function goTimer
{
ValTimeOver=SetTimeout("extract(valA,valB)",100)
}
functionstopTimer
{
ClearTimeout(ValTimeOver)
}
</script>

В функцию goTimer можно добавить аргументы, переменная ValTimeOver должна быть обьявлена в загаоловке, тогда она будет глобальной для всего документа.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Неизвестный
01.08.2008, 18:49
общий
Спасибо, попробую
Форма ответа