#javascript #html #css #webrtc
Вопрос:
В настоящее время я пытаюсь установить таймер для каждого созданного div, в соответствии с которым каждый div имеет цвет фона зеленого или красного в зависимости от наличия обнаружений в видео WebRTC. Есть ли способ назначить таймер для дивов индивидуально? Или, может быть, проверить только мое собственное видео? Я пробовал что-то вроде приведенного ниже, но это не работает, когда в вызове участвует более 1 человека, так как «время» будет глобальной переменной. Я тоже пробовал что-то подобное time = Math.ceil((time 1)/checkerBox.length)
, но, похоже, это тоже не работает. Любые указатели будут полезны
function checker(){
var time =0;
var timer = setInterval(function (){
for(var i=0;i<checkerBox.length;i ){
if(checkerBox[i].style.backgroundColor=="red"){
time = time 1;
console.log("Box" videoNum[i].innerHTML " is not present for : " checkerBox[i].innerHTML " seconds");
}else{
time = 0;
}
//Exceed time
if(checkerBox[i].innerHTML == 30){
setTimeout(function(){
takeScreenshot(videoNum[i-1]);
}, 100);
time = 0;
}
checkerBox[i].innerHTML = time;
}
},1000)
}
Обновление : В итоге я использовал массивы
var takenFrom;
var d = new Date();
let timeKeep = new Array(0,0,0,0,0,0,0,0,0,0,0);
let screenShots = new Array(0,0,0,0,0,0,0,0,0,0,0);
function checker(){
timer = setInterval(function (){
for(var i=0;i<=(checkerBox.length)-1;i ){
tableRow[i 1].cells[2].innerHTML = timeKeep[i]
tableRow[i 1].cells[3].innerHTML = screenShots[i]
if(flag[i].innerHTML=="0"){
checkerBoxFalse(checkerBox[i]);
timeKeep[i] = timeKeep[i] 1;
console.log("Box" videoNum[i].innerHTML " is not present for : " tableRow[i 1].cells[2].innerHTML " seconds");
if(tableRow[i 1].cells[2].innerHTML == 10 ){
takenFrom = "Box" videoNum[i].innerHTML "minute" d.getMinutes() " room" ROOM_ID
takeScreenshot(videoNum[i],takenFrom);
screenShots[i] = screenShots[i] 1;
timeKeep[i] = 0;
}
} else if(flag[i].innerHTML== "1"){
checkerBoxTrue(checkerBox[i]);
timeKeep[i] = 0;
}
}
},1000)
}
Ответ №1:
ДА:
for (let div of divs) {
setInterval(function() {
//do something with div
}, 1000);
}
let
является областью действия блока, поэтому каждый setInterval
будет иметь свой собственный div
.
Комментарии:
1. В итоге я использовал массивы « let timeKeep = новый массив(0,0,0,0,0,0,0,0,0,0,0)`; » и увеличивал значения внутри, соответствующие индексу окна видеовызова