Как отключить ссылку перед вызовом ajax и включить ссылку после ответа в jQuery

Я хочу отключить ссылку перед вызовом ajax и включить ссылку сразу после ответа ajax. Это то, что я пытаюсь, но это не работает:

jQuery(this).prop('disabled', false);

Это мое событие клика по ссылке в jQuery:

jQuery("#save").click(function (e) {

    e.preventDefault();
    var pcid = jQuery(this).data('pcid');
    var id = jQuery(this).data('id');
    jQuery(this).prop('disabled', true);

    var state = jQuery('.state').html();

    jQuery.post(ajaxurl, data, function (response) {
        console.info(response.status);
        jQuery(this).prop('disabled', false);

    });
});

Все работает правильно, но ссылка не отключается и не включается после нажатия ссылки и ответа ajax.

Это HTML тега:

<a id = "save" href = "#">SAVE</a>

disabled ничего не делает для ссылок.

epascarello 01.03.2019 19:46
jQuery(this).prop('disabled', false);this это не то, что вы думаете. console.info(this);
epascarello 01.03.2019 19:47

как указал @epascarello. Вы находитесь внутри обработчика завершения для почтового вызова AJAX. Поэтому «это» не относится к якорю. Попробуйте использовать идентификатор элемента, чтобы снова выбрать привязку -> $('#save').prop('disabled', false')

daddygames 01.03.2019 19:51
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
1 199
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

в момент нажатия кнопки можно попробовать отключить.

$("#save").click(function(e) {
  $(this).attr('disabled','disabled');
});
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type = "submit" id = "save">SAVE</button>

Когда вы получаете положительные или отрицательные результаты, вы должны использовать селектор вместо «этого».

$("#save").removeAttr('disabled');
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type = "submit" id = "save">SAVE</button>

Другие вопросы по теме