setTimeout время при очередном вызове функции
Здравствуйте.
Есть функция, которая показывает див при клике мышкой, и таймер, который этот див убирает через некоторое время (что-то вроде всплывающей подсказки). Если кликнуть несколько раз, недождавшись исчезания дива по таймеру, то время исчезания после последнего клика меньше времени у таймера (исчезает как бы все равно после первого клика). Как можно сделать исчезание дива по времени именно после последнего клика?
{
if (t) clearTimeout(t);
mydiv.style.display='block';
var t=setTimeout(function() { mydiv.style.display='none'; }, 3000);
}
|
Проблема скорее всего в том что переменная t должна быть объявлена вне-функции
|
А как ее тогда вызывать в функции?
|
<!DOCTYPE HTML>
<html>
<head> </head>
<body>
<div style="width: 200px;height: 100px;background: red;display: none;" id="mydiv"></div>
<button onclick="clk();">Click me</button>
<script>
var t, mydiv = document.getElementById('mydiv');
function clk() {
clearTimeout(t);
mydiv.style.display='block';
t = setTimeout(function() { mydiv.style.display='none'; }, 3000);
}
</script>
</body>
</html>
|
Ааа)) ну я ступил... :D
Спасибо огромное) |
| Часовой пояс GMT +3, время: 13:33. |