#javascript #jquery #debounce
#javascript #jquery #удаление
Вопрос:
Я применяю событие отмены к нескольким входам. Как мне отменить только изменения, поступающие с одного и того же ввода. Например, у меня есть два входных HTML-рендеринга через цикл. Единственными доступными идентификаторами являются data-id
те, которые поступают из базы данных.
<input data-id="1" />
<input data-id="2" />
Где data-id
— это то, что выполняется динамически и отображается с помощью цикла. Итак, я подключил ajax к вводу keyup и хотел бы отменить их, чтобы он не запускался тысячи раз при вводе пользователем. Вот мой javascript:
$(document).on('keyup', '[data-id]', _.debounce(function () {
// Ajax here
$.post('/some_url', { some_data })
}, 1000);
Теперь это, похоже, работает, и оно отменяется. Но проблема в том, что событие отмены не различает два входа. Поэтому, если я изменю первый ввод и сразу же начну изменять второй ввод, пока я иду достаточно быстро, событие keyup на первом входе не сработает.
Интересно, как мне отличить отмену <input>
только для каждого.
Ответ №1:
Перебирайте входные данные с each
помощью so, чтобы вы могли вызывать _.debounce
для каждого из них:
$('[data-id]').each(function() {
$(this).on('keyup', _.debounce(function () {
// ...