javascript - jQuery:单击时禁用单击事件,直到来自 ajax 调用的响应

标签 javascript jquery

在 jQuery 中执行以下操作:

$('#signupbox1').on('click', '#signup1', function() {

    var str = $('#signupform').serialize();

    // make it look like a waiting button
    $('#signup1').addClass("btn_wait");
    var btn_val = $('#signup1').val();
    $('#signup1').val('');

    $.ajax({
        type: "POST",
        url: "signup_step1.php",
        data: str,
        success: function(msg) {

            //doing stuff here

        $('#signup1').removeClass("btn_wait");
        $('#signup1').val(btn_val);
        }
    });

});

在收到来自 ajax 调用的应答之前,如何禁用点击事件?因此,当您单击按钮时,由于添加了类,它不仅会“转换”为等待按钮,而且单击事件也会“暂停”...这可能吗?

非常感谢您!

最佳答案

$('#signupbox1').on('click', '#signup1', function() {

    var str = $('#signupform').serialize();

    // make it look like a waiting button
    var btn_val = $('#signup1').val();
    $('#signup1').addClass("btn_wait").val('').unbind('click');

    $.ajax({
        type: "POST",
        url: "signup_step1.php",
        data: str,
        success: function(msg) {
            $('#signup1').removeClass("btn_wait").val(btn_val);
        },
        complete: function() {
            $('#signup1').bind('click'); // will fire either on success or error
        }
    });

});

关于javascript - jQuery:单击时禁用单击事件,直到来自 ajax 调用的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11402213/

相关文章:

javascript - 使用 Javascript 隐藏和显示 HTML 元素不起作用

javascript - 如何获取所有文件和文件夹结构的 JSON 对象

javascript - 使用 jQuery Animate 分步动画图像 Sprite ?

javascript - Node JS 和 pdfkit - addPage() 循环

javascript - Nodejs 要求不起作用

jquery - 改变相对于 eq().. jQuery/JavaScript 的 css 属性

javascript - 将值从 JQuery Datepicker 传递到代码隐藏

javascript - 如何通过 Javascript 将顺序类名附加到 <li>

jquery - 将相同的元素追加到两个位置

jquery - 在 jQuery Mobile 对话框/弹出窗口/面板后面启用文本选择