Не работает клик по кнопке JS

71
16 марта 2022, 13:30

На HTML странице есть две кнопки с одним и тем же классом "BACK". И есть JS код который должен выполняться при нажатии на эти кнопки в зависимости от условия

var discription = document.querySelector('#menu-discription');
var priceList = document.querySelector(".priceList");
var contacts = document.querySelector('.contacts');
document.querySelector(".back").onclick = function(){
        if (priceList.style.marginLeft = '0px') {
            priceList.style.marginLeft = '-3000px';
            discription.style.marginLeft = '5%';
        }
        if (contacts.style.marginLeft = '0px') {
            contacts.style.marginLeft = '-3000px';
            discription.style.marginLeft = '5%';
        }
    }

При нажатии на первую кнопку (она и первая на странице идет) всё работает, всё двигается, а при нажатии на эту кнопку но уже в другом блоке .contacts - не видит клика. В консоли ошибок никаких нет. Я уже думал может эту функцию нельзя подвязывать к двум разным кнопкам и оно срабатывает тоолько на той что идет раньше на странице, но поменяв сами кнопки местами всё равно в .priceList работает ав .contacts нет. Так же менял местами условия if, такой же результат в .priceList работает ав .contacts нет.

Суть задачи: есть несколько блоков которые могут поочередно выезжать из-за края экрана, и в каждом таком блоке есть кнопка "назад" - спрятать этот блок обратно за экран

Answer 1

document.querySelector('.back') найдет первый попавшийся и навесит событие на него. Вам нужен querySelectorAll который выберет все .back и в цикле на них навесить onclick

READ ALSO
Очень медленно выполняется метод веб-сервиса из C#

Очень медленно выполняется метод веб-сервиса из C#

Есть консольное приложение написанное на C#В Visual Studio добавил ссылку на веб-сервис wsdl

54