Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не работает несколько таймеров на сайте (https://javascript.ru/forum/misc/72749-ne-rabotaet-neskolko-tajjmerov-na-sajjte.html)

cobra369 23.02.2018 15:13

Не работает несколько таймеров на сайте
 
Всем привет. Использую движок 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 - пробел убрать

j0hnik 23.02.2018 16:02

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

просто скрипт был не рассчитан на два таймера, элемент в котором выводить таймер был в самой функции, исправил пользуйтесь.

cobra369 23.02.2018 16:14

Цитата:

Сообщение от j0hnik (Сообщение 478963)
https://codepen.io/anon/pen/yvqjJr

просто скрипт был не рассчитан на два таймера, элемент в котором выводить таймер был в самой функции, исправил пользуйтесь.

Огромное спасибо! :dance: Постараюсь внедрить все это теперь в WP. Если будут вопросы, напишу.

С праздником! :victory:

cobra369 23.02.2018 16:28

Цитата:

Сообщение от j0hnik (Сообщение 478963)

Все же немного не то, или я чего не понимаю.

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

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


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

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

Как быть в этой ситуации?

Manyasha 23.02.2018 17:02

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

напишите
$('#hehe').append(haha);
$('#hehe2').append(haha2);

cobra369 26.02.2018 15:40

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


Цитата:

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

напишите
$('#hehe').append(haha);
$('#hehe2').append(haha2);

Да, можно так сделать, но я не знаю сколько будет элементов на странице, то есть id генерируются wordpress.

То есть страница не статична и нужно как то переписать скрипт, чтобы он работал на всех элементах страницы

j0hnik 26.02.2018 19:33

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

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

$('*').append(haha);


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