Всем доброго вечера! У меня такая проблема. Есть задание сделать меню с ценами и чтобы их можно было добавлять и удалять из заказа. После нажатия на кнопку оплаты, у меня должны блокироваться все кнопки с позициями, чтобы ничего нельзя было добавить в заказ и удалить из него. Блокировку кнопок для добавления я сделал, а вот как мне заблокировать спец символ ×, чтобы при нажатии на него в браузере позиция не удалялась? Обычная блокировка для кнопок не подходит, он ее игнорирует. Помогите пожалуйста. Вот вырезка как я блокировал кнопки:
document.querySelector('.payed').addEventListener('click', function() {
document.querySelector('.stuffing_cheese_small').disabled = true;
document.querySelector('.stuffing_potato_small').disabled = true;
}
И вот как я создал спецсимвол через js:
var deleteIcon = document.createElement('span');
deleteIcon.className = 'delete-position';
deleteIcon.innerHTML = '×';
bindDeleteEvent(deleteIcon);
(из комментария:)
мне больше подходит вариант с removeEventListener. Только вот не могу понять, у меня есть вот такая функция:
function bindDeleteEvent(element) {
element.addEventListener('click', function(event) {
var target = event.target;
var closestPosition = target.closest('.position');
closestPosition.remove();
})
}
Как должен это должно выглядеть, вот так?:
document.removeEventListener('click', bindDeleteEvent);
Все, вот ответ на мой вопрос, если кому интересно:
Array.prototype.slice.call(document.querySelectorAll('.delete-position')).forEach(function(element) {
element.style.pointerEvents = 'none';
});
Отключить события мыши для любого элемента можно через css, только нужно понимать что оно будет унаследовано дочерними элементами
js:
deleteIcon.style.pointerEvents = 'none';
css:
.disabled {
pointer-events: none;
}
Вернуть обработку событий:
js:
deleteIcon.style.pointerEvents = 'auto';
css:
.disabled {
pointer-events: auto;
}
document.querySelectorAll(".block").forEach(b => {
b.onclick = () => console.log(b.innerHTML);
})
document.querySelectorAll(".test").forEach(b => {
b.style.pointerEvents="none";
})
.block{
width:40px;
height:40px;
background-color:wheat;
margin:10px;
display:inline-block;
line-height:40px;
text-align:center;
cursor:pointer;
transition: 0.3s;
}
div.block:hover{
background-color:red;
}
.disabled {
pointer-events:none;
}
<div class="block">1</div>
<div class="block" style="pointer-events:none">2</div>
<div class="block disabled">3</div>
<div class="block test">4</div>
<div class="block">5</div>
<div class="block test">6</div>
Продвижение своими сайтами как стратегия роста и независимости