You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jQuery实现状态切换后按钮颜色同步变更

问题解决:切换按钮状态时同步更新颜色

问题

切换按钮状态后,按钮文字变化但颜色不变,需刷新页面才会更新颜色。

原Blade代码

@if ($users->verified == 1)
    <p class="UpdateSectionStatuss btn btn-success me-3 h-50 mt-5 " id="user-{{ $users->id }}"
        user_id="{{ $users->id }}" href="javascript:void(0)">Verified</p>
@else
    <p class="UpdateSectionStatuss btn btn-danger me-3 h-50 mt-5 " id="user-{{ $users->id }}"
        user_id="{{ $users->id }}" href="javascript:void(0)">Un-Verify</p>
@endif

原Script代码

$(".UpdateSectionStatuss").click(function() {
    var verified = $(this).text();
    var user_id = $(this).attr("user_id");
    $.ajax({
        type: 'POST',
        url: "{{ URL::to('User_profile_status') }}",
        data: {
            verified: verified,
            user_id: user_id
        },
        success: function(res) {
            if (res['Verified'] == 0) {
                $("#user-" + user_id).html(
                    "<p class='UpdateSectionStatuss' href='javascript:void(0)'> Un-Verify </p>"
                )
            } else if (res['Verified'] == 1) {
                $("#user-" + user_id).html(
                    "<p class='UpdateSectionStatuss' href='javascript:void(0)'> Verified </p>"
                )
            }
        },
        error: function() {
            alert("Error");
        }
    });
});

问题原因

AJAX成功回调里更新HTML时,只保留了UpdateSectionStatuss类,丢失了控制颜色的btn-success/btn-danger以及其他布局类,导致样式未同步更新。

修复方案(推荐简洁版)

直接修改当前按钮的文本和类名,无需重新生成DOM元素:

$(".UpdateSectionStatuss").click(function() {
    var $btn = $(this);
    var verified = $btn.text().trim();
    var user_id = $btn.attr("user_id");
    
    $.ajax({
        type: 'POST',
        url: "{{ URL::to('User_profile_status') }}",
        data: {
            verified: verified,
            user_id: user_id
        },
        success: function(res) {
            if (res['Verified'] == 0) {
                $btn.text("Un-Verify");
                $btn.removeClass("btn-success").addClass("btn-danger");
            } else if (res['Verified'] == 1) {
                $btn.text("Verified");
                $btn.removeClass("btn-danger").addClass("btn-success");
            }
        },
        error: function() {
            alert("Error");
        }
    });
});

另一种修复方式(重新生成完整HTML)

如果需要重新构建元素,确保包含所有必要的类和属性:

$(".UpdateSectionStatuss").click(function() {
    var verified = $(this).text().trim();
    var user_id = $(this).attr("user_id");
    
    $.ajax({
        type: 'POST',
        url: "{{ URL::to('User_profile_status') }}",
        data: {
            verified: verified,
            user_id: user_id
        },
        success: function(res) {
            var target = $("#user-" + user_id);
            if (res['Verified'] == 0) {
                target.html(`<p class='UpdateSectionStatuss btn btn-danger me-3 h-50 mt-5' href='javascript:void(0)' user_id='${user_id}'>Un-Verify</p>`);
            } else if (res['Verified'] == 1) {
                target.html(`<p class='UpdateSectionStatuss btn btn-success me-3 h-50 mt-5' href='javascript:void(0)' user_id='${user_id}'>Verified</p>`);
            }
        },
        error: function() {
            alert("Error");
        }
    });
});

内容的提问来源于stack exchange,提问作者Nakvi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 17:30:46