Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Таймер для нескольких магазинов (https://javascript.ru/forum/misc/68473-tajjmer-dlya-neskolkikh-magazinov.html)

Nexus 22.04.2017 15:40

arkadii_parovozov, я смотрю Вы любите извращаться.
Ресурсоемкость зависит от реализации.

Nexus 22.04.2017 15:44

<div class="magazin">
    <div class="bloki" data-id="<?php echo $row['id'];?> data-minutes="<?=$row['time'];?>"></div>
    <div class="bloki" data-id="<?php echo $row['id'];?> data-minutes="<?=$row['time'];?>"></div>
</div>

<script type="text/javascript">
	$(function(){
		var cur_time=(new Date()).getTime()/1000;//Время от которого буду устанавливать сдвиг.
		$('.magazin>[data-minutes]').each(function(){
			$(this).text(cur_time+parseFloat($(this).attr('data-minutes')));
		});
	});
</script>

laimas 22.04.2017 15:58

Цитата:

Сообщение от Nexus
$(this).attr('data-minutes')

В JQ значение этого атрибута лучше получать как data('minutes').

$(this).text(cur_time+$(this).data('minutes'));

Если к примеру атрибут будет содержать json формат, то такое обращение вернет готовый объект.

arkadii_parovozov 22.04.2017 16:17

)) Извращаюсь потому что я с js на "Вы". Спасибо за пример!

arkadii_parovozov 22.04.2017 16:19

laimas,
Спасибо!

Nexus 22.04.2017 16:20

Цитата:

Сообщение от laimas (Сообщение 450677)
В JQ значение этого атрибута лучше получать как data('minutes').

$(this).text(cur_time+$(this).data('minutes'));

Если к примеру атрибут будет содержать json формат, то такое обращение вернет готовый объект.

Читал, что "jq" метод "data" кэширует результаты, поэтому всегда юзаю attr.
К тому же из data-атрибута ожидаются вполне определенные данные имеющие тип int или float.

К чему приведет (float)cur_time+(object)$(this).data('minutes'), к NaN?

laimas 22.04.2017 16:33

Цитата:

Сообщение от Nexus
метод "data" кэширует результаты

Не путайте метод date() привязывающий к объекту переменные с получением данных из атрибута. Например, у объекта атрибут data-a. При выполнение метода data({a : 1}) объекту будет добавлена переменная "a" к атрибуту data-a отношения не имеющая.

Цитата:

Сообщение от Nexus
К чему приведет (float)cur_time+(object)$(this).data('minutes'), к NaN?

Проверить то не сложно, что все будет Ок.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script> 
$(function() {
    $.each($('p'), function() {
        alert($(this).data('m')+5)
    })
});
</script> 
</head>
<body>
<p data-m="123"></p>
<p data-m="123.4"></p>
</body>
</html>

Nexus 22.04.2017 16:46

Цитата:

Сообщение от laimas (Сообщение 450677)
Если к примеру атрибут будет содержать json формат, то такое обращение вернет готовый объект.

Цитата:

Сообщение от laimas (Сообщение 450689)
Проверить то не сложно, что все будет Ок.
<p data-m="123"></p>
<p data-m="123.4"></p>

Во втором параграфе (<p>) json формат?
Я предполагал, что вы имеете ввиду несколько другой тип данных.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
	$('p').last().attr('data-m',JSON.stringify({foo:'bar'}));
	$('p').each(function(){
		alert($(this).data('m')+5);
	});
});
</script>
</head>
<body>
<p data-m="123"></p>
<p data-m="json"></p>
</body>
</html>

laimas 22.04.2017 16:49

Ну здрасьте, я же не сумасшедший, коли работаю с числами мною же определенными, то уж точно знаю чего ожидать. :)

Nexus 22.04.2017 16:57

Цитата:

Сообщение от laimas (Сообщение 450695)
Ну здрасьте, я же не сумасшедший, коли работаю с числами мною же определенными, то уж точно знаю чего ожидать. :)

При работе с числами и parseFloat + jq.attr пойдет.
Спасибо за информацию о jq.data, приму к сведению.


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