【问题标题】:Reset application STATE after JQUERY AJAX Function在 JQUERY AJAX 函数之后重置应用程序状态
【发布时间】:2022-01-08 02:04:19
【问题描述】:

有没有办法在每次调用 JQuery Ajax 函数后重置应用程序状态?

我正在开发一个小应用程序:用户单击一个按钮来调用一个函数。但是之后,当用户想要点击其他按钮来调用相同的功能时,第一个点击按钮的动态ID仍然存在,所以其他按钮不能再被寻址了。

代码:

$('#submitComment').on('click', function(){
        var id = $(this).data('id');
        var thiselement = $(this);

        $.ajax({
            url: 'includes/updateicon.php',
            type: 'POST',
            data: {id:id},
            dataType: 'html',
            success: function(data){

                if (data) {

                    $('#submitComment').attr("disabled", true);
                    $('#customComment').val("");
                    $('#updatedicon-'+id).html("DONE").removeClass('badge-danger').addClass('badge badge-success');
                    
                    # CODE HERE TO RESET THE STATE OF THE APP
                } 
                    else {

                    $('#customContent').load("custom/static/error.html");
                    
                    }

            },
            error: function(jqXHR, textStatus, errorThrown){
                $('#customContent').html("There was an Error about getting the Content:" + errorThrown);
            }
        });
    });

【问题讨论】:

    标签: javascript jquery ajax


    【解决方案1】:

    您正在根据 ID 搜索元素,并且 ID 必须是唯一的(这很可能会导致您的错误)。

    一个简单的解决方法是:

    $('.submitComment').on('click', function(){ 
        var id=$(this).attr('id');
        $.ajax({data:{id:id}});
    })
    

    【讨论】:

    • 我之前尝试过将其更改为类选择器而不是 ID(尽管每个按钮都应该有其动态 ID)但它没有工作.. 它只在第一次工作第一个按钮的 ID(无论哪个按钮先点击)会一直存在并阻止代码将新 ID 分配给其他按钮...
    • @1heone 你试过用 LET 代替 VAR 吗?这可能是一个范围界定问题,其中 VAR 可能会提升和毒化变量
    猜你喜欢
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    相关资源
    最近更新 更多