![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 19.08.2016
Сообщений: 14
|
![]()
Добрый день. Вопрос детский, но я только в начале пути.
Если переменную mytime создать внутри функции, сделать локальной, то функция sec() её видит. Но, если вынести, как в приведённом мною примере кода, функция sec() не видит её. Объясните пожалуйста принцип. Код:
|
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
![]()
потому что ваш скрипт лежит раньше чем элемент
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Вы, похоже, просто скрипт не правильно размещаете.
всё работает. убедитесь в этом сами: Код HTML:
<html> <head> <meta charset="utf-8"> </head> <body> Time: <div id="mySecund">unknown</div> <script type="text/javascript"> var myTime = document.getElementById("mySecund"); var id = setInterval("sec()", 1000); var counter = 0; function sec(){ counter++; myTime.innerHTML = "Секунд прошло - " + counter; if(counter == 10)clearInterval(id); } </script> </body> </html> |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 19.08.2016
Сообщений: 14
|
![]()
Да. Скрипт у меня в head. Ок. Обясните тогда, пожалуйста, почему так происходит?
Т.е. если у меня скрипт лежит в head. Какая разница, переменная внтури функции или вне её объявляется и в неё передаются данные. |
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
![]()
потому что так работает жизненный цикл страницы и порядок выполнения скриптов
|
![]() |
![]() |
![]() |
#6 |
Раздолбайских Дел
Старожил
Регистрация: 22.05.2009
Сообщений: 3,828
|
![]()
парсер страницы увидел скрипт — парсер скрипт запустил, но до твоего элемента он еще не дошел и не создал
Alar, верни репу!
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 15.02.2012
Сообщений: 821
|
![]()
Всё же лучше скрипты располагать в head. Для корректной работы надо поставить слушатель на событие окончания постройки DOM, после чего к последнему можно будет обращаться:
Код:
^-.-^ My GitHub
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 19.08.2016
Сообщений: 14
|
![]()
мммм...тогда какая разница. Я просто не понимаю сам процесс. Я понимаю, что скрипт идёт раньше...
Я просто не понимаю, в чём разница, переменная создана за функцией или внутри её. В одном и том же случае скрипт располагается одинаково. Но если переменная вне функции, она её не видит, а если внутри - тогда видит |
![]() |
![]() |
![]() |
#10 | |
Форумчанин
Регистрация: 01.08.2016
Сообщений: 182
|
![]() Цитата:
Вызов скрипта/функции должен идти по HTML-коду ниже вашего <div id='mySecund'></div>, или запускаться по событию окончания загрузки страницы (формирования DOM) Последний раз редактировалось predefined; 20.08.2016 в 04:45. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не могу понять, почему ругается на это :( | The Real Kos | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 19.09.2012 10:07 |
Не могу понять почему не дорисовывает.. | victor5133 | Общие вопросы C/C++ | 0 | 24.02.2012 12:55 |
Не могу понять почему не работает функция | SeRhy | JavaScript, Ajax | 0 | 09.02.2012 17:41 |
Не могу понять в почему ошибка | Donim | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 08.06.2011 23:07 |
Почему не работает...хм....понять не могу! | Артур Иваныч | Microsoft Office Excel | 9 | 01.12.2009 17:58 |