Final Countdown Plugin 및 Handlebars.js을 사용합니다.템플릿 내부의 핸들 및 카운트 다운
두 플러그인 모두 훌륭하게 작동합니다. <div>
을 다음은 나에게 카운트 다운 줄 것이다 (2017년 1월 1일에 여기를 카운트 다운) : {{endTime}}
내가하고 싶은 종료 시간입니다
<script type ="mustache/x.tmpl" id="helloTmpl">
{{#each this}}
{{endTime}}
{{/each}}
</script>
:
<div id="getting-started"></div>
<script type="text/javascript">
$("#getting-started").countdown("2017/01/01", function(event) {
$(this).text(
event.strftime('%D days %H:%M:%S')
);
});
</script>
은 여기 간단한 핸들 예를 카운트 다운 (2017/01/01 대신). 그것은 {{#each}}
루프 안에 있으며 많은 {{endTime}}
을 실행합니다.
누구나 가능하다고 생각하십니까? 모든 {{endTime}}
에 대한 카운트 다운을 받으시겠습니까? 위의 카운트 다운 플러그인을 도우미에 넣으려고했으나 성공하지 못하고 조금 더러워졌습니다. 미리 감사드립니다.
편집 : 결과 76484 @
감사합니다. 당신의 모범을 보면서 나는 이제 내 설치와 함께 작동하게되었습니다. 새 데이터로 템플릿을 새로 고치기 위해 매 3-5 초마다 function populate()
을 실행합니다. 이제는 endTime
데이터가 변경되지 않더라도 3 ~ 5 초마다 카운트 다운 기능을 실행해야한다는 것을 의미합니다. 나는 카운트 다운 타이머가 아약스이 function populate()
밖에 할 수 있다면 더 큰 것 느낌이 어떤 이유
function populate()
{
var url = apiurl + 'api/myGreatData';
$.ajax
({
type: 'POST',
cache: false,
url: url,
dataType: 'json',
success: function (response)
{
var source = document.getElementById("helloTmpl").innerHTML;
var tmpl= Handlebars.compile(source);
var html = tmpl(response);
var box = document.getElementById("box");
box.innerHTML = html;
// Countdown Timer
$('[data-countdown]').each(function (index, el) {
var $el = $(el);
var finalDate = $el.attr('data-countdown');
$el.countdown(finalDate, function (event) {
$(this).text(event.strftime('%D days %H:%M:%S'));
});
});
}
})
}
하지만 그것은 늘 당신의 DOM 설명으로 인해 작업 :이 좋아해요. 아마도 카운트 다운을 호출하는 것만으로도 부담스럽지 않을 것입니다 ...
감사합니다. 위 질문을 편집했습니다. –
3 ~ 5 초마다 어떤 데이터를 가져 오나요? – 76484
나는 인코딩 된 json을 그냥 울리고있다. 어떤 사용자가 "둘러보기"를 등록하면 증가 할 수있는'{{enrolledParticipants}} '을 가지고 있습니다. 모든 사용자는이 변화를 동적으로 (또는 모든 3-5sek에서) 볼 필요가 있습니다.각 투어에는 아시다시피 '{{endTime}}'이 있으며 이는 각 투어의 상수입니다. 시간이 지남에 따라 더 많은 둘러보기가 추가 될 수 있지만 템플릿 루프'{{each each}} '는 이것을 처리합니다. 미래에 3-5 초 새로 고침 대신 서버에서 변경이 발생하면 아약스가 실행되지만 점은 여전히 Ajax 내부의 카운트 다운 시계와 동일합니다 ... –