javascript - 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 效果它不起作用。
有什么线索吗?!
笔记:
- 我确信加点(跳过)代码对函数没有影响。
- 我也确信 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)
}
}
}
解决方案
推荐阅读
- google-chrome-devtools - 当 html 在网页上动态更新时,如何保存生成的 html,例如,我可以将其与 diff 进行比较以进行调试?
- sed - 如何在单行中格式化多行数据,但使用 sed 用逗号分隔?
- merge - Powerquery中两个表的所有组合
- ios - 将分页 UICollectionView 高度调整为当前可见的 UICollectionViewCell
- php - 无法通过使用 PHP 调用类中的函数连接到数据库
- git - git pull 之后在 master 之前的本地分支
- r - 在 dplyr 1.0 中从 mutate_all 移动到 cross()
- python - 如何使用 Selenium 和 Python 从 HTML 中提取文本
- python - 有没有办法在 DataFrame 中将行设置为列行?或如何通过将任何索引行设置为 column_row 从 Excel 文件中获取 DataFrame?
- javascript - 动态添加日期作为带有名称和 ID 的列标题