Имам бутон, заобикалящ икона. Смятам, че иконата пречи на моето събитие за кликване. Мога само да щракна върху полетата на иконата, за да активирам събитието onclick, но нищо не се случва, когато щракна върху иконата. Замених иконата с малко текст и бутонът onclick работи перфектно. Опитах z-index да поставя иконата зад бутона, но без резултат. Може ли някой да обясни защо иконата блокира щракването и как мога да го поправя?
html:
<div class="navMenu">
<button onclick="navClick()" class="navMenu-button"><i class="fas fa-bars"></i></button>
<div id="navList" class="navMenu-content">
<a href="/bgindex.htm" class="navMenu-link">Home</a>
<a href="/bgabout.htm" class="navMenu-link">About</a>
<a href="/bgresume.htm" class="navMenu-link">Resume</a>
</div>
sass:
.navMenu{
position: relative;
display: inline-block;
margin-top:5px;
margin-left:5px;
&-button {
background-color: #615b5b;
border-radius:50%;
color: white;
padding: 7px;
opacity:0.7;
border:none;
font-size: 14px;
cursor: pointer;
}
&-button:hover, &-button:focus {
background-color: #615b5b;
}
&-content {
display: none;
position: absolute;
background-color: #f1f1f1;
min-width: 200px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
}
&-content .navMenu-link{
color: $body-text-color;
padding: 12px 16px;
text-decoration: none;
display: block;
}
&-content .navMenu-link:hover {
background-color: #ddd;
}
&-show {
display:block;
}
}
js:
function navClick() {
document.getElementById("navList").classList.toggle("navMenu-show");
}
window.onclick = function(event) {
if (!event.target.matches('.navMenu-button')) {
var dropdowns = document.getElementsByClassName("navMenu-content");
var i;
for (i = 0; i < dropdowns.length; i++) {
var show = dropdowns[i];
if (show.classList.contains('navMenu-show')) {
show.classList.remove('navMenu-show');
}
}
}
}