Cały kod:
Kod
window.onload=function(){
// id_z jest to id zegara do którego się odnosimy
function obiekt(id_z, id_div)
{
var millis = 0;
var sec = 0;
var stopTime=0;
var totalTime =0;
var temp = 0;
var startTime=0;
var work = false;
var self=this;
this.go2= function()
{
if (work == true ) return;
work = true;
document.getElementById(id_z).style.color="red";
var currentTime = (new Date()).getTime();
startTime = currentTime;
var counter = setInterval(function() {
if(currentTime >= stopTime)
{
document.getElementById(id_z).style.color="black";
clearInterval(counter);
totalTime+= stopTime - startTime;
work = false;
setValue(totalTime);
return;
}
temp = currentTime - startTime;
setValue(temp+totalTime);
currentTime = (new Date()).getTime();
}, 1);
}
function setValue(value)
{
millis = value % 1000;
value = Math.floor( value / 1000);
sec = value % 60;
value = Math.floor( value / 60 );
if(value<10) {
value="0" + value;
}
if(sec<10) {
sec="0"+sec;
}
if(millis<100) {
millis="0"+millis;
}
document.getElementById(id_z).innerHTML = value + ":" + sec +":" + millis;
}
this.setStopTime= function()
{
stopTime = (new Date()).getTime() + 3000;
}
function click()
{
document.getElementById(id_div).classList.add("aktywny");
}
function removeclass()
{
document.getElementById("one").classList.remove("aktywny");
document.getElementById("two").classList.remove("aktywny");
document.getElementById("three").classList.remove("aktywny");
document.getElementById("four").classList.remove("aktywny");
}
document.getElementById(id_div).addEventListener("mousemove", function() {self.setStopTime();self.go2();});
document.getElementById(id_div).addEventListener("click", function() {removeclass(); click();});
/*
var zmienna = document.getElementsByClassName('aktywny');
for(var i=0; i<3; i++)
{
zmienna[i].addEventListener("keydown", function() {self.setStopTime();self.go2();});
}
*/
//if($(id_div).is('.aktywnty')){
//document.addEventListener("keydown", function() {self.setStopTime();self.go2();});
// }
//document.getElementById(id_div).hasClass('aktywny').addEventListener("keydown", function() {self.setStopTime();self.go2();});
// document.getElementsByClassName('aktywny')[0].addEventListener("keydown", function() {obiekt1.setStopTime();obiekt1.go2();});
}
var obiekt1=new obiekt("zegar1", "one");
var obiekt2=new obiekt("zegar2", "two");
var obiekt3=new obiekt("zegar3", "three");
var obiekt4=new obiekt("zegar4", "four");
}
function show(){
alert(zm)
}
Nie mam pojecia jak to rozwiązać kod troche juz poprawiłem myszka zdazenia wyzwalaja sie po najechaniu na obszar diva, stan aktywny classy robi sie po kliknieciu diva. Potrzebuje tylko sprawdzic czy dany div ma klase aktywny. probowałem tą petlą ale chyba cos nie rozumiem. Wykomentowana juz jest ta petla
Edit
Kod
document.getElementById(id_div).addEventListener("keydown", function() {self.setStopTime();self.go2();});
document.getElementById(id_div).addEventListener("click", function() {removeclass(); click();});
gdy ustawiłem na tych divach tabindex="0" działa ta linia
Kod
document.getElementById(id_div).addEventListener("keydown", function() {self.setStopTime();self.go2();});
a aktywną klase wykorzytuje tylko po to by zrobic ramke i bylo wiadomo w jakim jestem divie.