#javascript
#javascript
Вопрос:
есть ли какой-либо способ отложить функцию в javascript, которую я хочу сделать:
function showLabel(){
document.getElementById(id).show();
wait(5000); //wait 5 sec
document.getElementById(id).hide();
}
Я хочу показывать метку в течение 5 секунд, если вызывается эта функция, может быть другой способ сделать это.
Примечание: я не могу использовать jQuery
Комментарии:
1. Будьте осторожны, встроенных
show|hide
методов нет.2. у нас есть пользовательский веб-фреймворк Java, и мы пишем в нем javascript, и у нас есть такой метод, как this.componentID.setVisible(true / false), и я использую его, но все равно спасибо.
Ответ №1:
Подсказка: используйте setTimeout
window.setTimeout("javascript function", milliseconds);
Прочитайте документы и узнайте, как это сделать: https://developer.mozilla.org/en/docs/Web/API/window.setTimeout
Если вы хотите что-то вроде сна, то:
function sleep(millis, callback) {
setTimeout(function()
{ callback(); }
, milliseconds);
}
Я бы предпочел:
function doStuff()
{
//do some things
setTimeout(continueExecution, 10000) //wait ten seconds before continuing
}
function continueExecution()
{
//finish doing things after the pause
}
Другой способ с использованием цикла
<script type="text/javascript">
// bad implementation
function sleep(milliSeconds){
var startTime = new Date().getTime(); // get the current time
while (new Date().getTime() < startTime milliSeconds); // hog cpu
}
</script>
Комментарии:
1. setInterval не предназначен для этого, он вызывает функцию снова и снова в течение заданного интервала.
Ответ №2:
Вы можете попробовать это:
function showLabel(){
document.getElementById(id).show();
setTimeout(function()
{
document.getElementById(id).hide();
}, 5000);
}
Используйте setTimeout
для одноразовой задачи, иначе setInterval
для повторяющейся задачи.
Ответ №3:
используйте setTimeout
функцию в javascript. и очистите время ожидания при вызове функции
var timerId = setTimeout(function showLabel(){
document.getElementById(id).show();
document.getElementById(id).hide();
}, 5000);
clearTimeout(timerId);
Ответ №4:
setTimeout(
function(){ Your_function }, milliseconds
);
Это вызывает функцию по истечении заданного времени.