gpt4 book ai didi

javascript - 每隔一段时间更改对象类名不起作用

转载 作者:行者123 更新时间:2023-11-28 09:09:52 24 4
gpt4 key购买 nike

我有以下 JavaScript 代码。这个想法是以 5 秒的间隔更改每个项目的 css 类。

function flahsActiveRules() {

var list = document.getElementById('listName');
var items = list.getElementsByTagName('li');

for (var i = 0; i < items.length; ++i) {

var li = items[i];
changeColor(li, 'itemSortOrange');
}
}

function changeColor(item, myCSS) {

item.className = myCSS;
sleep(5000);
}

function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds) {
break;
}
}
}

这里的问题是,在 UI 方面,项目更改之间似乎没有任何延迟。所有这些似乎都是立即发生的,但是当我在 Chrome 中调试代码时,我可以很好地看到元素每隔一段时间就会发生变化。

如何解决这个问题?

如有任何帮助,我们将不胜感激。

最佳答案

与 C 等语言不同,JavaScript 中的代码是非阻塞的。

所以你不能通过编写很长的代码来产生延迟。

要生成延迟,您可以使用 setTimeout 或 setInterval 函数。

你能做的是。

function flahsActiveRules() {

var list = document.getElementById('listName');
var items = list.getElementsByTagName('li');

for (var i = 0; i < items.length; ++i) {

var li = items[i];
setTimeout(function ()
{
changeColor(li, 'itemSortOrange');
}, 5000 * i);
}
}

function changeColor(item, myCSS) {

item.className = myCSS;
}

关于javascript - 每隔一段时间更改对象类名不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16457418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com