Могу ли я определить псевдоним для объекта документа вне области действия функции - PullRequest
0 голосов
/ 24 июля 2010

Это не работает в моем браузере - это нормально? Это работает только тогда, когда я объявляю псевдоним для объекта Document внутри функции someFunc scope.

var pic1 = document.getElementById('pic1');

var someFunc = function () {

    pic1.style.left = "100px"; 
}

Ответы [ 2 ]

1 голос
/ 24 июля 2010

Это не проблема объема. Вероятная причина в том, что вы пытаетесь получить ссылку на элемент до его создания. Вы должны дождаться загрузки элемента, прежде чем сможете получить к нему доступ, например, используя событие onload:

<html>
<head
<title>Test</title>
<script>

function init() {

  var pic1 = document.getElementById('pic1');

  var someFunc = function () {
    pic1.style.left = "100px"; 
  };

  someFunc();

}

</script>
</head>
<body onload="init();">
<div id="pic1"></div>
</body>
</html>
0 голосов
/ 24 июля 2010

Да. Вам просто нужно убедиться, что вы звоните someFunc после загрузки элемента pic1 на странице. На этом примечании лучше всего поместить JavaScript внизу, перед закрывающим тегом body.

Проверьте ваш код в действии - http://jsfiddle.net/dga9k/1/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...