Проблема в том, что вызов AJAX является асинхронным, поэтому each()
l oop, который содержит анимацию logi c, запускает до запроса и элемента p
имеет какой-либо контент.
Чтобы это исправить, поместите вызов each()
в обратный вызов AJAX:
<p class="Count member-count"></p>
$.getJSON('https://url.com/cmp/server/api/get-total-member', function(data) {
$(".member-count").html(`${data.data}<br>`);
$('.Count').each(function() {
var $this = $(this);
jQuery({
Counter: 0
}).animate({
Counter: data.data
}, {
duration: 1000,
easing: 'swing',
step: function() {
$this.text(Math.ceil(this.Counter));
}
});
});
});
.member-count {
color: #BA1823;
font-size: 40px;
}
Стоит также отметить, что не следует ставить <script>
теги в середине вашей HTML структуры. Либо поместите их в <head>
, либо непосредственно перед </body>
. Точно так же не помещайте CSS правила во встроенные атрибуты style
. Поместите их во внешние. css файлы. Вот jsFiddle с полными исправленными HTML и JS.