Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Функция счётчик (https://javascript.ru/forum/misc/9334-funkciya-schjotchik.html)

Орёл 11.05.2010 16:24

Функция счётчик
 
Вот моя функция

function timer(sec){

sec++;

as = sec;
setTimeout("timer(as)",1000);

return sec;
}

Проблема в том что если занести в переменную timer = timer(1); , не считает

а если в функции возвращать значение в форму document.myform.nameform.value = sec; ,то всё считает,в чём проблема?

Gvozd 11.05.2010 16:49

Цитата:

Сообщение от Орёл
timer = timer(1);

этой вы строчкой переопределили ф-цию timer
таким образом во второй вызов попытается запустится переменая timer как ф-ция, что разумеетсмя ей не удастся
я так понимаю, вы хотите, чтобы у вас во внешней переменной хранилось текущее значение таймера?ну так и передавайте его в эту переменную, в теле таймера.
return sec сработает только при первом вызове, а в дальнейшем от него толку будет ноль

Орёл 11.05.2010 16:51

timer = timer(1); я подписал образно

Skipp 11.05.2010 16:51

Вообще какая-то странная реализация счётчика:)

И проблема не очень понятно.

Может расскажешь для чего это тебе и куда?

Орёл 11.05.2010 17:01

Цитата:

Сообщение от Skipp (Сообщение 54875)
Вообще какая-то странная реализация счётчика:)

И проблема не очень понятно.

Может расскажешь для чего это тебе и куда?

Для загрузки текста в форме textarea

<script>
function timer(sec){

sec++;

as = sec;

setTimeout("timer(as)",1000);
return sec;
}

function gos(){

el = document.myform.shok.value = 'Сканирование файлов...';

procent = timer(1);
file = document.myform.shok.value = el + "\n" + procent;
}


</script>

<form name="myform" action="#">
<textarea name="shok" cols="25" rows="6"></textarea><br />
<input type="submit" name="go" value="Проверить ПК" onClick="gos()"><br />
</form>

Орёл 11.05.2010 17:19

Угу спасибо

Skipp 11.05.2010 17:19

что-то вроде этого?

<html>
<head>
<script type="text/javascript">
function gos()
{
var count = 0;
var interval = setInterval(function()
{
document.getElementById("shok").value = "Сканирование файлов..\n"+ count;
count == 100 ? clearInterval(interval) : count++
},1000);
}
</script>
</head>
<body>
<textarea id="shok" cols="25" rows="6"></textarea><br />
<input type="submit" name="go" value="Проверить ПК" onclick="gos()"><br />
</body>
</html>


Часовой пояс GMT +3, время: 10:43.