Почему не выполняется условие при клике на img?
Проблема заключается в том что не выполняется условие при клике на img
корзина svg-delete
(при нажатие на корзину должен полностью удалятся зеленый блок). Также нужно учитывать что данных зеленых блоков может быть множество, следовательно img
корзин такое же количество.
const mainBlock = document.getElementById('chatWrapper');
mainBlock.addEventListener('click', (event) => {
const input = document.getElementById('input');
const sendButton = document.getElementById('send');
const editButton = document.getElementById('edit');
if (event.target.classList.contains('svg-delete') === true) {
event.target.querySelector('.left').style.display = 'none'
}
if (event.target.classList.contains('svg-settings') === true) {
sendButton.style.display = 'none';
editButton.style.display = 'inline';
const message = event.target.parentElement.parentElement.children[0];
input.value = message.textContent;
message.setAttribute('id', 'text');
}
if (event.target.id === 'edit') {
sendButton.style.display = 'inline';
editButton.style.display = 'none';
const text = document.getElementById('text');
text.removeAttribute('id');
if (input.value === '' ) {
return false
} else {
text.textContent = input.value;
text.removeAttribute('id');
input.value = '';
}
}
});
*{
font-family: sans-serif;
margin: 0;
}
button {
cursor: pointer;
}
.chat_wrapper {
width: 600px;
display: flex;
justify-content: center;
align-content: center;
flex-flow: column nowrap;
border: 1px solid lightgreen;
border-radius: 15px;
padding: 15px;
}
.footerChat {
margin: 10px;
display: flex;
justify-content: center;
}
.footerChat > input {
width: 75%;
border: 1px solid lightblue;
font-size: 16px;
font-weight: 400;
transition: all .5s ease-in;
}
.footerChat > input:hover {
border: 1px solid lightseagreen;
transition: all .5s ease-out;
padding: 10px;
}
.footerChat > button {
border: none;
color: white;
font-size: 18px;
cursor: pointer;
}
.send-button {
background: lightseagreen;
}
.edit-button {
background-color: darkviolet;
display: none;
}
.footerChat > button:hover {
transition: all .5s ease-out;
}
.send-button:hover {
background-color: lightblue;
}
.edit-button:hover {
background-color: mediumpurple;
}
.chat {
display: flex;
flex-flow: column nowrap;
justify-content: center;
}
.left {
align-self: flex-start;
}
.right {
align-self: flex-end;
}
.message {
background: lightgreen;
padding: 15px 15px;
border-radius: 25px;
border-radius-topleft: unset;
}
.message_box {
display: flex;
justify-content: space-between;
align-content: center;
align-items: center;
flex-flow: row nowrap;
margin-bottom: 20px;
}
.date {
font-size: 10px;
}
.username {
font-weight: bold;
}
.settings-button {
padding: 0;
margin: 0;
background-color: transparent;
border: none;
align-self: flex-end;
}
.delete-button {
padding: 0;
margin: 0;
background-color: transparent;
border: none;
}
.svg-settings,
.svg-delete {
width: 20px;
height: 20px;
}
.message_container p {
margin-bottom: 10px;
}
<div class="chat_wrapper" id="chatWrapper">
<div class="chat">
<div class="chatContainer left">
<div class="message friend">
<div class="message_box">
<p class="username">
Кирилл
</p>
<p class="date">02.15.2023 20:00</p>
</div>
<div class="message_container">
<p>Привет, я первый раз в этом чате.</p>
<button class="settings-button">
<img class="svg-settings" src="./settings.svg" alt="settings">
</button>
<button class="delete-button">
<img class="svg-delete" src="./delete.svg" alt="delete">
</button>
</div>
</div>
</div>
<div class="chatContainer right">
<div class="message user">
<div class="message_box">
<p class="username">
Дмитрий
</p>
<p class="date">02.15.2023 20:00</p>
</div>
<div class="message_container">
<p>Привет давай я раскажу про чат.</p>
</div>
</div>
</div>
</div>
<div class="footerChat">
<label for="input"></label>
<input type="text" id="input">
<button class="send send-button" id="send">Отправить</button>
<button class="send edit-button" id="edit" >Отредактировать</button>
</div>
</div>
Источник: Stack Overflow на русском