@Madislav

Как написать правильно (без дублей) данный код?

Здравствуй!
Есть код который выполняет изменение css свойства у div`а. Как сделать, чтобы скрипт выполнялся для каждого div`a, а не только для 1-ого.
<!DOCTYPE HTML>
<html>

<head>
	<link rel="stylesheet" href="css/style.css">
	<style>
		#block {
			background: #eee;
			padding: 2em;
		}
		.hover {
			display: none;
			background: green;
			padding: 2em;
		}
		#w2 {
			
		}
	</style>
</head>

<body>

	<div id="w1">
		<div id="block">Сюда надо навести</div>
	</div>
	
	<div id="w2">
		<div rel="block" class="hover">Текст появится</div>
	</div>
	

	<div id="w1">
		<div id="block">Сюда надо навести</div>
	</div>
	
	<div id="w2">
		<div rel="block" class="hover">Текст появится</div>
	</div>

	<script>
		var bl = document.getElementById('block'),
			hv = document.querySelector('.hover');

		bl.onmouseover = function () {
			hv.style.display = 'block';
		}

		hv.onmouseout = function () {
			hv.style.display = 'none';
		}
	</script>
</body>

</html>
  • Вопрос задан
  • 158 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
В документе не должно быть одинаковых id.

jsfiddle.net/4srvkwz8

можно сделать намного красивее если сильнее переделать верстку.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
Для начала прочитать основы хтмл, и перестать использовать несколько одинаковых id в одном документе. И соответственно использовать не getElementById (название которого как бэ намекает что будет выбран 1 элемент), а использовать, например getElementsByClassName().
на jq будет примерно так:
$( document ).ready({
  $(".w1").on({
    mouseenter: function () {
        $(this).next().show();
    },
   mouseleave: function () {
        $(this).next().hide();
    }
  })
})
Ответ написан
kulakoff
@kulakoff
Vue.js developing
Вариант с измененной разметкой: https://codepen.io/kerf/pen/oWpjRE
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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