2016-03-27 4 views
0

У меня есть обратный отсчет jQuery (http://www.littlewebthings.com/projects/countdown/) для футбольного матча. Когда отсчет завершен, он отображает неполную функцию.Изменить текст внутри div после определенного времени

Я хочу, чтобы jQuery изменил слово «Live» внутри div на Full Time после 90 минут после завершения отсчета.

Вот код

<div id="countdown"> 
    <div class="dash days_dash"> 
     <span class="dash_title">days</span> 
     <div class="digit">0</div> 
     <div class="digit">0</div> 
    </div> 

    <div class="dash hours_dash"> 
     <span class="dash_title">hours</span> 
     <div class="digit">0</div> 
     <div class="digit">0</div> 
    </div> 

    <div class="dash minutes_dash"> 
     <span class="dash_title">minutes</span> 
     <div class="digit">0</div> 
     <div class="digit">0</div> 
    </div> 

    <div class="dash seconds_dash"> 
     <span class="dash_title">seconds</span> 
     <div class="digit">0</div> 
     <div class="digit">0</div> 
    </div> 
</div> 

<div class="message" id="complete" style="display: none;">Live</div> 

<script language="javascript" type="text/javascript"> 
    jQuery(document).ready(function() { 
     $('#countdown').countDown({ 
      targetDate: { 
       'day':  11, 
       'month': 4, 
       'year':  2016, 
       'hour':  13, 
       'min':  0, 
       'sec':  0 
      }, 
      onComplete: function() { 
      $('#countdown').addClass('ended'); 
      $('#complete').slideDown(); 
      } 
     }); 
    }); 
</script> 
+0

Почему бы не использовать чистый JavaScript? – PDKnight

+0

Просто уточнить. Вы хотите заменить текст «Live» на «Full Time»? – user1751825

+0

Я отредактирую свой вопрос – user81244

ответ

0

можно просто добавить 90 минут до объекта даты, используя следующие: var newDate = new Date(originalDate.getTime() + 90 * 60000);

Используя эту новую дату, вы можете проверить, если текущая дата превосходящий новый. Получение текущей даты осуществляется через Date.now(). Добавление все это вверх приводит к следующему:

// Original date = March 30 2016 14:00:00 
var minutes = 90, 
    originalDate = new Date(1459339200000); 
    timedDate = new Date(originalDate.getTime() + minutes * 60000); 

// timedDate = originalDate + 90 minutes. 

if (Date.now() >= timedDate) { 
    // We are now 90 minutes later 
    // Replace div text. 
} 

Внутри if-statement вы можете заменить текст Div. Я бы посоветовал использовать только один div и просто заменить текст; в отличие от двух отдельных div.

+0

Он хочет установить таймер;) – PDKnight

+0

@PDKnight он? Я не вижу слова «таймер» в его вопросе. – Matthijs

+0

Отличный вопрос, он не сказал нам должным образом, если он хочет решение с таймером ... – PDKnight

0

Чтобы опираться на то, что @Matthjs сказал в комментариях. Этот код будет работать хорошо:

var specificDate = 1459346400000; //which is what March 30th 2016 is 
 
    var timeleft = specificDate - Date.now(); 
 
    setInterval(update, timeleft); 
 
    function update(){ 
 
    if (Date.now() >= specificDate) { 
 
    document.getElementById("output").innerHTML = "Time's Up"; 
 
    } 
 
    }
<div id="output">Still got time!</div>

Это будет проверять, если право петли, когда время вверх.

+0

@Matthijs это тоже работает, я сделал редактирование –

+0

(a) Он не учитывает добавление 90 минут и (б) Используя setInterval, он будет повторять каждый 'timeleft' вместо стрельбы только один раз. – Timeout

+0

Да, я не изменил комментарий @Timeout после того, как сделал редактирование –

Смежные вопросы