https://hyunu0504.github.io/blog6/#
https://hyunu0504.github.io/blog6/
hyunu0504.github.io
<html>
<haed>
<link rel="styleSheet" href="./style.css" />
</haed>
<body>
<ul class="container">
<li class="a"><a href="#">링크</a>1</li>
<li class="a"><a href="#">링크</a>2</li>
<li class="a"><a href="#">링크</a>3</li>
<li class="a"><a href="#">링크</a>4</li>
</ul>
</body>
<script src="./a.js"></script>
</html>
body {
margin: 0;
}
ul {
display: flex;
list-style: none;
justify-content: space-around;
background-color: powderblue;
height: 500px;
}
li {
text-align: center;
background-color: grey;
height: 300px;
width: 300px;
}
a {
font-size: 48px;
}
.on {
background-color: black;
}
document.querySelectorAll('.item')[0].addEventListener('click', addColor)
document.querySelectorAll('.item')[1].addEventListener('click', addColor)
document.querySelectorAll('.item')[2].addEventListener('click', addColor)
document.querySelectorAll('.item')[3].addEventListener('click', addColor)
이벤트 위임을 사용하면 부모한테만 이벤트를 하나만 달아주면 된다.
const box = document.querySelector('.container');
box.addEventListener('click', addColor2);
const box = document.querySelector('.container');
function addColor(e){
console.log(e.target) // 실제 클릭한 요소
console.log(e.currentTarget) // 이벤트가 등록된 요소
let click = e.target; // 실제 클릭한 요소를 click이라는 변수에 담음
if( click.tagName == "A" ){ // 클릭한 요소의 tag네임이 a태그라면
click = click.parentElement //클릭한 요소를 그 요소의 부모요소로 선택
}
else if( click == e.currentTarget ){ //클릭한 요소가 이벤트가 등록된 요소면
return; // 리턴함
}
for( c of box.children ){ //box안의 자식들을 c인자로 받음
c.classList.remove('on') //그 요소의 on이라는 클래스를 제거
}
click.classList.add('on') //클릭한 요소에 on 클래스 추가
}
box.addEventListener('click', addColor)
if( click.tagName == "A" ){ // 클릭한 요소의 tag네임이 a태그라면
click = click.parentElement //클릭한 요소를 그 요소의 부모요소로 선택
}
else if( click == e.currentTarget ){ //클릭한 요소가 이벤트가 등록된 요소면
return; // 리턴함
}
[Javascript] function 메소드 ( call, apply, bind ) (0) | 2022.06.14 |
---|---|
[Javascript] window 메소드 ( setTimeout, setInterval, clearInterval, clearTimeout ) (0) | 2022.06.12 |
[Javascript] 이벤트 버블링, 캡쳐링, stopPropagation, preventDefault (0) | 2022.06.09 |
[Javascript] 눈 내리는 효과 만들기 (0) | 2022.06.08 |
[Javascript] Math 객체 메소드( random, min, max, abs, sqrt, pow) (0) | 2022.06.07 |