Задать вопрос
@sunnydog

Почему не подключается внешний скрипт?

<!DOCTYPE HTML>
<html>

<head>
  <meta charset="utf-8">
  <title> Главная </title>
  <link href="../styles/model.css" rel="stylesheet">
  	<script src='../scripts/model.js'></script>
</head>

<body>
	<div class="container">
		<ul id ="scroller">
			<li class="main">
		
			</li>
			<li class="other">

			</li>
			<li class="other">
			
			</li>
			<li class="other">
			
			</li>
		</ul>
	</div>
</body>
</html>

Это соответственно сам документ.
var scroller = document.getElementById('scroller');
var main = document.getElementsByClassName('main')[0];
var other = document.getElementsByClassName('other')[0];
var container = document.getElementsByClassName('container')[0];

scroller.onclick = function () {
	var topPosition = getComputedStyle(container).marginTop;
	container.style.marginTop = parseInt(topPosition) - window.innerHeight + 'px';
}

Это скрипт, который лежит в соседней папке с pages, в которой лежит страница, к которой прикреплен файл. Хром его не добавляет в sources, но в applications он есть и выдает в консоль ошибку "Cannot set property 'onclick' of null(…)"
  • Вопрос задан
  • 165 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
dummyman
@dummyman
диссидент-схизматик
во-первых, уже лет 10 все используют querySelector вместо getElementById и getElementsByClassName.
во-вторых время выполнения скрипта, так, как вы его подклдючили, - до появления элемента #scroller на странице.
document.addEventListener("DOMContentLoaded", function(event) {
   
var scroller = document.querySelector('#scroller');
var main = document.querySelector('.main');
var other = document.querySelector('.other');
var container = document.querySelector('.container');

scroller.onclick = function () {
  var topPosition = getComputedStyle(container).marginTop;
  container.style.marginLeft = parseInt(topPosition) - window.innerHeight + 'px';
}

  });
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы