Не видит глобальную переменную?
Здравствуйте. Решил обновить знания по js, но вот незадача. Не работает участок:
var a = document.getElementById("player");
function move () {
setInterval (function () {
a.style.left=a.style.left--+"px";
},1000)
}
Выдает - Cannot read property 'style' of null, счетчик работает (видно из файрбага хрома). Объявляю локально (внутри move) - все работает, но встает проблема - объект 'player' при первом срабатывании убегает сразу же влево, до края экрана и лишь потом смещается по 1px в сек. Заранее спс. |
поскольку положение элемента не задано с использованием js то a.style.left изначально не вычисляется.
http://javascript.ru/blog/Andrej-Par...ta-na-stranice а глобальную переменную видит a.style.left=a.offsetLeft--+"px"; |
zilker,
a.style.left это строка приведите её к числу прежде чем уменьшать dmitriymar, вариант ... стиль не задан скриптом но вычисляется ...
<!DOCTYPE >
<html>
<head>
<title></title>
</head>
<body>
<div style="left: 10px" id="player"></div>
<script>
var a = document.getElementById("player");
alert(a.style.left)
</script>
</body>
</html>
|
рони,
согласен не подумал об этом(изза того, что не помню когда задавал через атрибуты значения),но если в таблице стилей задан то не увидит.но в том варианте ,что написал нет необходимости приводить и он универсален,не важно в атрибуте задан или в css var b="2px"; b--; alert(b) а у него null выдаёт -что указывает на то что в css задал |
dmitriymar,
Можно только гадать не видя полный код ... ещё вариант var a создаётся раньше самого элемента |
заменил на offset - все тоже Cannot read property 'style' of null.
Мне тогда, чтобы оперировать свойствами, задавать их изначально в js? |
рони,
в принципе да:) |
Цитата:
|
Цитата:
файл подключился в хеде и сразу выполнилось var a = document.getElementById("player"); в то время как не то что элемента "player" в body нет ,а нет ещё и самого body. |
zilker,
window.onload = function() {ваш код} |
| Часовой пояс GMT +3, время: 14:11. |