Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.03.2018, 18:12
Новичок на форуме
Отправить личное сообщение для Bomberman Посмотреть профиль Найти все сообщения от Bomberman
 
Регистрация: 11.03.2018
Сообщений: 9

Не выполняется код обработчика события
Не открывается модальное окно, ошибку не выдаёт, просто нет реакции при нажатии на кнопку


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta charset="utf-8">
	<title>Практика Javascript</title>
	<link href="css/style.css" type="text/css" rel="stylesheet" />
</head>
<body onload="fun3(),fun4(),fun5(),fun6()">
<div id ="lesson_6" class="lessons">
		   		<div class="iframe"><iframe width="760" height="515" src="https://www.youtube.com/embed/R2Es_mbSva0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div>
		   		<button id="modalw">Open Modal</button>
		   		<div id="myModal" class="modal">
		   			<div class="modalContent">
		   				<span class="close">&times;</span>
		   				<p>Modal window</p>
		   			</div>
		   		</div>
				
		   	</div>
		   </div>
		      </div>
		</div>
			   
		

	
	
	<script type="text/javascript" src="js.js"></script>
</body>
</html>



var modal = document.getElementById("myModal");
      btn = document.getElementById('modalw');
      span = document.getElementsByClassName("close")[0];

btn.onclick =  function () {
	modal.style.display = "block";
}





span.onclick = function () {
	modal.style.display = "none";
}

window.onclick = function (event) {
	if (event.target == modal) {
		modal.style.display = "none";
	}
}


Как исправить?

Последний раз редактировалось Bomberman, 15.03.2018 в 18:21.
Ответить с цитированием
  #2 (permalink)  
Старый 15.03.2018, 20:57
Интересующийся
Отправить личное сообщение для Noga_programmista Посмотреть профиль Найти все сообщения от Noga_programmista
 
Регистрация: 13.03.2018
Сообщений: 17

Bomberman,
Он у тебя должен появляться, просто ты этого не замечаешь, сделай ему стайл заметный, что-то типо
<div id="myModal" style="width:100px; height:100px ; background-color:red " >

чтобы мог отслеживать появление
Ответить с цитированием
  #3 (permalink)  
Старый 15.03.2018, 21:39
Новичок на форуме
Отправить личное сообщение для Bomberman Посмотреть профиль Найти все сообщения от Bomberman
 
Регистрация: 11.03.2018
Сообщений: 9

В CSS указаны свойства всех 3 элементов, проверял наличие путем удаление display:none, окно есть.

Код:
.modal{
	display: none;
	position: fixed;
	z-index: 1;
	left: 0;
	top:0;
	width: 100%;
	height: 100%;
	overflow: auto;
	background-color: rgba(0,0,0,0.8);
}

.modalContent{
	background-color: #fefefe;
	margin: 15% auto;
	padding: 20px;
	border:1px solid #888;
	width: 80%;
	color: black;
	text-align: center;

}
.close{
	color:#aaa;
	float: right;
	font-size: 28px;
	font-weight: bold;
}
Я не знаю в чём ошибка, ещё на анимацию задание делаю - работает только через onclick в HTML, этот код никак не работает, выдаёт Uncaught TypeError: Cannot read property 'style' of undefined, at HTMLButtonElement.onclick если через HTML onclick делать

Последний раз редактировалось Bomberman, 15.03.2018 в 21:48.
Ответить с цитированием
  #4 (permalink)  
Старый 15.03.2018, 21:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Bomberman,
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta charset="utf-8">
  <title>Практика Javascript</title>
  <style type="text/css">
  .modal{
  display: none;
  position: fixed;
  z-index: 1;
  left: 0;
  top:0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0,0,0,0.8);
}

.modalContent{
  background-color: #fefefe;
  margin: 15% auto;
  padding: 20px;
  border:1px solid #888;
  width: 80%;
  color: black;
  text-align: center;

}
.close{
  color:#aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
}
  </style>
</head>
<body>
<div id ="lesson_6" class="lessons">
       		<button id="modalw">Open Modal</button>
       		<div id="myModal" class="modal">
       			<div class="modalContent">
       				<span class="close">&times;</span>
       				<p>Modal window</p>
       			</div>
       		</div>

       	</div>





  <script>
  var modal = document.getElementById("myModal");
      btn = document.getElementById('modalw');
      span = document.getElementsByClassName("close")[0];

btn.onclick =  function () {
  modal.style.display = "block";
}





span.onclick = function () {
  modal.style.display = "none";
}

window.onclick = function (event) {
  if (event.target == modal) {
    modal.style.display = "none";
  }
}
</script>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 15.03.2018, 22:16
Новичок на форуме
Отправить личное сообщение для Bomberman Посмотреть профиль Найти все сообщения от Bomberman
 
Регистрация: 11.03.2018
Сообщений: 9

Нашёл нерабочий код выше, без него работает, спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доступ к компоненту из обработчика события его HTML-элемента khusamov ExtJS 24 30.05.2015 08:53
Обработка события внутри события grifangel Общие вопросы Javascript 6 04.09.2014 12:34
Удаление обработчика события FanAizu Общие вопросы Javascript 3 23.08.2013 18:46
код вызова в обработчике события onLoad тэга moloko Элементы интерфейса 3 13.02.2013 11:23
Как расставить события neon_tmn jQuery 1 24.08.2011 14:53