javascript не хочет выполнять функцию

107
04 января 2020, 21:50

хочу сделать так чтобы при нажатии на параграф вызывалась функция в которой прописано действие. но почему то она не хочет работать. подскажите что я сделал не так? Причем, когда вставил код на оверфлов то тут он работает, а в гугл хроме нет.

var p = document.getElementsByTagName('p'); 
console.log(p); 
p[0].onclick = one; 
 
function one(){ 
	alert('work'); 
}
<!DOCTYPE html> 
<html>	 
	<head> 
		<meta charset="utf-8"> 
		<link rel="stylesheet" href="style.css"> 
		<script src="main.js"></script> 
	</head> 
	<body id="body"> 
		<p>Текст</p> 
		<p>Текст</p> 
		<p>Текст</p> 
		<p>Текст</p> 
		<p>Текст</p> 
	</body>  
</html>	

Answer 1

Потому что "в гугл хроме" скрипт расположен в странице выше <body> и выполняется, когда элементов <p> еще нет.

window.addEventListener("load", function() {
  var p = document.getElementsByTagName('p');
  console.log(p);
  p[0].onclick = one;
  function one(){
    alert('work');
  }
});
Answer 2

Либо, как вариант, скрипт можете подключить с атрибутом defer: <script src="main.js" defer></script>. При этом скрипт будет загружен асинхронно, но исполнится только после того, как весь документ будет обработан браузером.

READ ALSO
Проблема вывода addeventlistener

Проблема вывода addeventlistener

Проблема в выводе всего что идет после for

118
Внутренние push уведомления в cordova

Внутренние push уведомления в cordova

Доброго времени?Вопрос такой: как можно настроить отправку push уведомления в приложении android\ios на cordova (54

125
Ошибка в отдельном js Uncaught TypeError: Cannot read property &#39;classList&#39; of null?

Ошибка в отдельном js Uncaught TypeError: Cannot read property 'classList' of null?

я только начал изучать html и js и использовал скрипт для добавления класса к элементуЕсли скрипт находится в html документе то всё работает, но если...

114
Управление очередью при загрузке DOM

Управление очередью при загрузке DOM

Есть модальное окноВ нём много изображений

112