首页 > 解决方案 > 如何在 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.log(response.status);
        jQuery(this).prop('disabled', false);

    });
});

一切正常,但在单击链接和 ajax 响应后,链接没有被禁用和启用。

这是标签的 HTML:

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

标签: javascriptjqueryajax

解决方案


在按钮单击的那一刻,您可以尝试禁用它。

$("#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>

当你得到正面或负面的结果时,你应该使用选择器而不是“this”。

$("#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>


推荐阅读