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, время: 07:03. |