Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Много таймеров на одной странице (https://javascript.ru/forum/dom-window/29407-mnogo-tajjmerov-na-odnojj-stranice.html)

pimple2006 26.06.2012 19:20

Много таймеров на одной странице
 
Ребята здравствуйте
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">

function displayDate(vr,i)
{
vr0=vr;
i0=i;
//1340827200
c=new Date();
sec=Math.floor(c.getTime() / (1000)); //getfromtimeseconds
razn=vr0-sec;
Data=new Array();
Data[0]=Math.floor(razn / 86400); //days
Data[1]=razn-(Data[0]*86400); // remainAfterDays
Data[2]=Math.floor((Data[1] / 3600)); //hours
Data[3]=Data[1]-(Data[2]*3600); //remainAfterHours
Data[4]=Math.floor((Data[3] / 60)); //minutes
Data[5]=Data[3]-(Data[4]*60); //RemainSeconds
Data[6]=Data[0]+Data[2]+Data[4]+Data[5];
if (Data[6] > 0) {
var b=document.getElementById(id0).innerHTML=Data[0]+' Days '+Data[2]+':'+Data[4]+':'+Data[5];}
else {var b=document.getElementById(id0).innerHTML='Акция завершилась';}
window.setTimeout("displayDate(vr0,id0)",1000);
}
function init(ttime,id)
{
ttime0=ttime;
id0=id;
window.setTimeout("displayDate(ttime0,id0)",1000);
}
</script>
</head>
<body>

<h1>My First Web Page</h1>
<p id="q"><script>init(1340886000,'q')</script>dsa</p>
<p id="h" ><script>init(1340886000,'h')</script>asd</p>


<button type="button" ">Display Date</button>

</body>
</html>

написал код,работает замечательно для одного таймера,а как сделать много таймеров на одной странице?:(

ksa 26.06.2012 19:25

Цитата:

Сообщение от pimple2006
работает замечательно

Даже это? :)
Цитата:

Сообщение от pimple2006
window.setTimeout("displayDate(ttime0,id0)",1000);


Deff 26.06.2012 19:30

pimple2006,
Если установки времени не для каждого, то чисто копированием, в тот момент, когда Вы заканчиваете обновляеть первый таймер, если установки для каждого в отдельности -= нужно знать алгоритм установок
ЗЫ: У меня, в Опере , по кнопке <button type="button" ">Display Date</button> ничо не меняется

ksa 26.06.2012 19:34

Цитата:

Сообщение от Deff
Если установки времени не для каждого, то чисто копированием, в тот момент, когда Вы заканчиваете обновляеть первый таймер, если установки для каждого в отдельности -= нужно знать алгоритм установок

Бла, бла, бла, бла...

Твой код не рабочий. Вот я про что...

pimple2006 26.06.2012 19:35

button осталась просто так

pimple2006 26.06.2012 19:39

ребят,все работает,во всех браузерах ,кнопка осталась от старого скрипта,если один тамймер вызвать.то работает на ура,я не знаю как вызвать их несколько штук разом,прошу помощи

ksa 26.06.2012 19:45

Вот вроде тикают оба...

<!DOCTYPE html>
<html>
<head>
<script src="ttp://code.jquery.com/jquery-latest.js"></script>
<style type="text/css">
</style>
<script type='text/javascript'>
function displayDate(vr,i) {
	//1340827200
	c=new Date();
	sec=Math.floor(c.getTime() / (1000)); //getfromtimeseconds
	razn=vr-sec;
	Data=new Array();
	Data[0]=Math.floor(razn / 86400); //days
	Data[1]=razn-(Data[0]*86400); // remainAfterDays
	Data[2]=Math.floor((Data[1] / 3600)); //hours
	Data[3]=Data[1]-(Data[2]*3600); //remainAfterHours
	Data[4]=Math.floor((Data[3] / 60)); //minutes
	Data[5]=Data[3]-(Data[4]*60); //RemainSeconds
	Data[6]=Data[0]+Data[2]+Data[4]+Data[5];
	if (Data[6] > 0) {
	var b=document.getElementById(i).innerHTML=Data[0]+' Days '+Data[2]+':'+Data[4]+':'+Data[5];}
	else {var b=document.getElementById(i).innerHTML='Акция завершилась';}
	window.setTimeout(function () {
		displayDate(vr,i);
	},1000);
};
function start() {
	init(1340886000,'q');
	init(1340886000,'h');
};
function init(ttime,id) {
	window.setTimeout(function () {
		displayDate(ttime,id);
	},1000);
};
</script>
</head>
<body>
<h1>My First Web Page</h1>
<p id="q">dsa</p>
<p id="h" >asd</p>
<button onclick='start()'>Start</button>
</body>
</html>


Код более напоминает подземный ход на чердак... :)

pimple2006 26.06.2012 19:49

а без кнопки никак?
+ данные формируются php
id элемента
колво секунд

ksa 26.06.2012 19:51

Цитата:

Сообщение от pimple2006
а без кнопки никак?

Почему такой пессимизм? :haha:
Функцию
start();

Можно вызвать из
<body onload='start();'>
...
</body>

pimple2006 26.06.2012 19:56

<body> прописан на главной странице,а страница ,где есть таймеры подгружается
может данные которые формируются,попробывать занести в массив и из массива брать ?


Часовой пояс GMT +3, время: 11:48.