首页 > 解决方案 > setTimeout 执行自身,但不执行其功能: css.("background-color")

问题描述

我有以下功能:

function render(data){
  nodes = data.nodes;
  for(i=0; i<nodes.length; i++){
    ...
    let originalColor = $("#"+i).css("background-color")
    ...
    setTimeout(()=>{$("#"+i).css("background-color", originalColor)}, 1000)
  }
}

现在,我已经尝试在这个 setTimeout 中打印一些东西,它可以工作!这意味着它实际上被调用了,但是,css 效果它不起作用。

有什么线索吗?!

笔记:

可根据要求提供完整功能:

function render(data){
  nodes = data.nodes;
  for(i=0; i<nodes.length; i++){
    $("#"+i).css("background-color", ()=>{
      return nodes[i]["color"]=="Blue"? "dodgerblue" : "red";
    })
    let originalArmies = $("#"+i).text()
    $("#"+i).text(nodes[i]["armies"])
    if(originalArmies != $("#"+i).text()){
      let originalColor = $("#"+i).css("background-color")
      $("#"+i).css("background-color", "yellow")
      setTimeout(()=>{$("#"+i).css("background-color", originalColor)}, 1000)
    }
  }
}

标签: javascriptjquery

解决方案


推荐阅读