Событие Bind Unbind onclick не работает с Ajax - PullRequest
0 голосов
/ 28 мая 2020

У меня проблема с привязкой и отменой привязки прослушивателя onClick с использованием JQuery Ajax.

Как отключить привязку к событию щелчка, которое нельзя щелкнуть несколько раз, но привязать его, если ajax не удается. это то, что я пробовал до сих пор.

$('#test').on('click', function (e) {  
 e.preventDefault();
 alert('clicked');
 $( "#test" ).off( "click");// works fine,remove on click listner
 // Ajax function
 // done()  // Do nothing.
 // error() // bind it again so it can be clicked.
});

https://jsfiddle.net/khirad1996/4nLdvq9s/2/

1 Ответ

0 голосов
/ 28 мая 2020

Вы можете отключить кнопку во время звонка и снова включить в случае ошибки!

const fakeAjax = time => new Promise(r => setTimeout(() => r(Math.random() > .5), time))

const button = document.querySelector('button');

button.addEventListener('click', async function() {
  this.disabled = true;
  error = await fakeAjax(1000);
  this.disabled = error;
});
<button>Ajax Call</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...