Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   вопрос возник (https://javascript.ru/forum/misc/14157-vopros-voznik.html)

dmitriymar 03.01.2011 17:44

вопрос возник
 
почему объявляя глобально
var o=document.getElementById("какой либо контейнер");
в каждой функции его приходится переобъявлять -иначе не работает?

monolithed 03.01.2011 18:05

Цитата:

Сообщение от dmitriymar
в каждой функции его приходится переобъявлять -иначе не работает?

может, я что-то не так понял?

<script type="text/javascript">
var div = document.documentElement;
(function(){
    div.style.background = 'red';
}());
</script>

Kolyaj 03.01.2011 18:07

При объявлении глобально элемента с идентификатором "какой либо контейнер" ещё не существует.

dmitriymar 03.01.2011 18:15

какой либо контейнер -это условно контейнер объявлен заранее и описан.
вот вопрос почему так обявляется в хеде в боди
var i = document.getElementById("div");
var x=10;
function as(){
// ну допустим
i.style.left=(x+60)+"px";-не сработает эта строка если в функции не переобъявить i = document.getElementById("div");
}

dmitriymar 03.01.2011 18:18

Kolyaj,
приимерно понял в одном случае его нет ещё в другом он не являтся глобальным?

Kolyaj 03.01.2011 18:20

В HTML-коде он идёт ниже, чем var i = document.getElementById.

dmitriymar 03.01.2011 18:22

спс въехал.

monolithed 03.01.2011 18:53

dmitriymar напишите для себя функцию по типу onready или возьмите за привычку использовать onload при работе с DOM

dmitriymar 03.01.2011 18:58

monolithed,
та не там дело не в том-сижу галерею пишу-запутался по полной в ней. и тут ещё это не в тему вылезло. голова не тем забита смотрю вроде бы раньше контейнеры все объявлены... смотрел на стили сss.....:yes:
онлоад изначально не пошел бы поскольку все контейнеры должны динамически создаваться. создал присвоил обработал-и проблемы бы не возникло. а тут решил на статике сначала логику отработать-вот всё и вылезло-один алгоритм наложил на другой не подумав что в изначальном варианте они сначала создаются а тут обращаюсь к не созданным ещё..((


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