@madnober

Перестал работать onclick. В чем проблема?

Внезапно перестал работать onclick у кнопок

html
<button onclick="addToCart('{{ item }}', this)" disabled="false">Искать</button>


js
function addToCart(name, button) {
    button.style.background = '#4c0000'
    button.style.cursor = 'default'
    button.textContent = 'В корзине'
    button.setAttribute('disabled', true)

    new Toast({
        title: false,
        text: `${name} Добавлено в корзину`,
        theme: 'danger',
        autohide: true,
        interval: 2000
      })
}


Знаю что так писать - плохая практика. Пытался написать разными способами, чистил кэш, менял браузер и перезагружал компьютер, но всё приводит к одному и тому же результату. Примечательно то , что onclick перестал работать в целом. В какую бы кнопку не вставил и какую бы функцию не написал, onclick совершенно не реагирует.
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
@defriz
люблю js
уберите атрибут disabled и все заработает.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@nagge101
onclick="addToCart('{{ item }}', this)"

Таким образом у вас функция вызывается сразу при инициализации(по идее).
Попробуйте следующим образом:

html:
<button onclick="handleClick" data-name="{{ item }}" disabled="false">Искать</button>


js:
const handleClick = (evt) => {

addToCart(evt.target.getAttribute("data-name"), evt.target)

}


Что тут происходит? Создается просто функция хендлер, которая имеет event. ИЗ event мы достаем ссылку на кнопку + ваше название item(предполагаю, что это какой-то html шаблонизатор)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы