Javascript-DOM元素在回调方法退出后恢复初始值

Javascript-DOM元素在回调方法退出后恢复初始值,javascript,html,callback,socket.io,Javascript,Html,Callback,Socket.io,我有一些socket.io事件的回调方法。 在其中一个事件中,我将主体的背景颜色更改为红色,在另一个事件中,我将其更改为黄色 当我调试到为什么黄色没有被反射的问题时,我看到在一步一步的调试过程中,主体的颜色变为黄色,但一旦方法完成,它就会变回红色 下面是我的两个回调事件 function initScore(data) { $('body').css('background', 'red') // <-- color changes and is saved $('.

我有一些socket.io事件的回调方法。 在其中一个事件中,我将主体的
背景颜色更改为红色,在另一个事件中,我将其更改为黄色

当我调试到为什么黄色没有被反射的问题时,我看到在一步一步的调试过程中,主体的颜色变为黄色,但一旦方法完成,它就会变回红色

下面是我的两个回调事件

function initScore(data) {

    $('body').css('background', 'red')  // <-- color changes and is saved

    $('.waiting-modal').hide()
    let j = JSON.parse(data);
    roundId = j.id;
    delete j.id
    players = j["players"];
    delete j["players"]
    $('#scores').html('')
    for (key in j) {
        console.log(j[key])
        $('#scores').append('<p><strong>' + j[key][0] + ': </strong>' + `${j[key][1].wins} / ${j[key][1].losses}` + '</p>')    
    }
}

function gameOver(data) {
    $('body').css('background', 'yellow')    // <-- changes to yellow but turns back red.
}

这是我从未遇到过的奇怪行为。

在更改背景之前,您是否尝试登录每个回调?你不是一个接一个地收到初始分数吗?初始分数是先收到的。回合结束后,收到gameOver
socket.on('init_scores', initScore)
socket.on('gameOver', gameOver);