I have 1 event listener that is listening to the container element, I want to attach an active class to any of it's children (.container > div.active) when clicked. (So DO NOT attach an active class to .contain > div > ul.active).
My problem is I'm not entirely sure how bubble up the .target
to reach the div.diary
?
http://jsbin.com/yereramaxe/edit?html,css,js,output
document.querySelector('.contain').addEventListener('click', diary);
function diary(e) {
if (e.target.className === 'diary') {
//?.classList.add('active');
}
}
* {
font-size:0;
padding:0;
margin:0;
}
.diary {
display:inline-block;
background:red;
width:33.33%;
box-sizing:border-box;
padding:10px;
}
li {
font-size:18px;
}
ul {
list-style-type: none;
}
div > ul > li {
display:inline-block;
width:33.33%;
}
.diary.active {
background:blue;
}
<div class="contain">
<div class="diary">
<ul>
<li>
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</li>
<li>
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</li>
<li>
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</li>
</ul>
</div>
<div class="diary">
<ul>
<li>
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</li>
<li>
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</li>
<li>
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</li>
</ul>
</div>
<div class="diary">
<ul>
<li>
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</li>
<li>
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</li>
<li>
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</li>
</ul>
</div>
</div>