Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.02.2018, 15:13
Новичок на форуме
Отправить личное сообщение для cobra369 Посмотреть профиль Найти все сообщения от cobra369
 
Регистрация: 22.02.2018
Сообщений: 5

Не работает несколько таймеров на сайте
Всем привет. Использую движок WP.

Стоит задача добавить несколько таймеров обратного отсчета.

Ок, нашел в сети вот такой https://codepen.io/namimosha/pen/bwJQRy

Хорошо, ставлю на сайт (зачем то еще подключаю - jquery/3.1.0/jquery.min.js) - без него работать не хочет.

Один таймер работает.

Начинаю подключать следующие - беда, просто не отображаются, а точнее отображается только последний.

В чем может быть беда?

id - у divов разные

Код:
echo "<div id=\"hehe-$mytempvar\">

</div>
<script type=\"text/javascript\">
var remainingTime = $timeryak/1000;
var haha = '<span id=\"haha-$mytempvar\"></span>';
$('#hehe-$mytempvar').append(haha);

var MMode = setInterval(function(){ MModeTimer(remainingTime)}, 1000);

	function MModeTimer(remainingTime) {

	var currentTime = new Date().getTime() / 1000;
	var futureTime = remainingTime;
	var timeRemaining = futureTime - currentTime;
	var minute = 60;
	var hour = 60 * 60;
	var day = 60 * 60 * 24;
	var dayFloor = Math.floor(timeRemaining / day);
	var hourFloor = Math.floor((timeRemaining - dayFloor * day) / hour);
	var minuteFloor = Math.floor((timeRemaining - dayFloor * day - hourFloor * hour) / minute);
	var secondFloor = Math.floor((timeRemaining - dayFloor * day - hourFloor * hour - minuteFloor * minute));
	var countdownCompleted = \"Completed\";

	if (secondFloor <= 0 && minuteFloor <= 0) {
	window.location.reload(true);
	clearInterval(MModeTimer);
	document.getElementById(\"haha-$mytempvar\").innerHTML = countdownCompleted;

	} else {

	if (futureTime > currentTime) {
	if (dayFloor > 0){
$('#haha-$mytempvar').html(dayFloor + \" д. \" + hourFloor + \" ч. \" + minuteFloor + \" м. \");

	}
	else{
		$('#haha-$mytempvar').html(hourFloor + \" ч. \" + minuteFloor + \" м. \");
	}

	}
	}
	}

</script>"
Это непосредственно код из content.php - который выводит публикацию.

Гляньте пожалуйста вот сайт - akciya .uz - пробел убрать
Ответить с цитированием
  #2 (permalink)  
Старый 23.02.2018, 16:02
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

https://codepen.io/anon/pen/yvqjJr

просто скрипт был не рассчитан на два таймера, элемент в котором выводить таймер был в самой функции, исправил пользуйтесь.
Ответить с цитированием
  #3 (permalink)  
Старый 23.02.2018, 16:14
Новичок на форуме
Отправить личное сообщение для cobra369 Посмотреть профиль Найти все сообщения от cobra369
 
Регистрация: 22.02.2018
Сообщений: 5

Сообщение от j0hnik Посмотреть сообщение
https://codepen.io/anon/pen/yvqjJr

просто скрипт был не рассчитан на два таймера, элемент в котором выводить таймер был в самой функции, исправил пользуйтесь.
Огромное спасибо! Постараюсь внедрить все это теперь в WP. Если будут вопросы, напишу.

С праздником!
Ответить с цитированием
  #4 (permalink)  
Старый 23.02.2018, 16:28
Новичок на форуме
Отправить личное сообщение для cobra369 Посмотреть профиль Найти все сообщения от cobra369
 
Регистрация: 22.02.2018
Сообщений: 5

Сообщение от j0hnik Посмотреть сообщение
https://codepen.io/anon/pen/yvqjJr
Все же немного не то, или я чего не понимаю.

Мне нужно несколько таймеров на странице в разных div.

<div id="hehe">
</div>


<div id="hehe2">
</div>

Но в каждом один span

Как быть в этой ситуации?
Ответить с цитированием
  #5 (permalink)  
Старый 23.02.2018, 17:02
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

cobra369,
просто вместо
$('#hehe').append(haha,haha2);

напишите
$('#hehe').append(haha);
$('#hehe2').append(haha2);
Ответить с цитированием
  #6 (permalink)  
Старый 26.02.2018, 15:40
Новичок на форуме
Отправить личное сообщение для cobra369 Посмотреть профиль Найти все сообщения от cobra369
 
Регистрация: 22.02.2018
Сообщений: 5

Ребят, помогите, так и не нашел решения этой задачи.


Сообщение от Manyasha Посмотреть сообщение
cobra369,
просто вместо
$('#hehe').append(haha,haha2);

напишите
$('#hehe').append(haha);
$('#hehe2').append(haha2);
Да, можно так сделать, но я не знаю сколько будет элементов на странице, то есть id генерируются wordpress.

То есть страница не статична и нужно как то переписать скрипт, чтобы он работал на всех элементах страницы
Ответить с цитированием
  #7 (permalink)  
Старый 26.02.2018, 19:33
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

что значит на всех??? вы как себе это представляете???

но все же если так надо пожалуйста

$('*').append(haha);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
(PHP) Требуется доделать несколько вещей на сайте admiral Работа 1 19.06.2017 14:01
Ajax при заходе на страницу из поисковика - не работает Алексей_ГР Ваши сайты и скрипты 2 03.09.2013 00:03
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
ява-скрипт выборочно работает-не работает zeta777 Internet Explorer 0 20.01.2010 11:41
Новости на сайте! Не работает скрипт! neurostep Общие вопросы Javascript 1 11.04.2008 14:18