setTimeout自身执行,但不执行其功能:css。(“ background-color”)

时间:2018-11-25 23:34:07

标签: javascript jquery

我具有以下功能:

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效果不起作用。

有任何线索吗?!

注意:

  • 我确定点(跳过)代码对该功能没有影响。
  • 我还确保已正确选择DOM元素。
  • 在发布此消息之前,我已经尝试了许多stackOverFlow解决方案,但似乎没有一个可行:(
  • 我确定“ originalColor是有效的rgb()值。

根据要求提供全功能

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)
    }
  }
}

0 个答案:

没有答案