Как блокировать повторное нажатие на ссылку?

Имеется следующая ссылка: <a href="/post">Отправить</a>, при нажатии отправляется запрос, который задерживается в течении 2-3 секунды, при втором разе (повторном) хотел бы заблокировать ссылку? или менять содержимое на href="#" (чтоб по несколько раз не нажимали) приведите пример по обоим случаям пожалуйста.


Ответы (1 шт):

Автор решения: xydope

let link = document.querySelector('.link')
let clickable = true;

link.onclick = (event) => {
  event.preventDefault()
  if (clickable) {
    console.log('click')
    clickable = false;
    //второй вариант event.currentTarget.setAttribute('href', '/somelink')
    setTimeout(() => {
    clickable = true
    //второй вариант event.currentTarget.setAttribute('href', '#') 
    console.log('Снова работает')
    }, 4000)
  } else 
  console.log('отключена')
}
<a href="#" class="link">Отправить</a>

→ Ссылка