2015-01-18 2 views
0

Я пытаюсь заставить эту функцию работать, но я не знаю, что случилось, и я не очень хорошо разбираюсь в js. Я хочу вызвать функцию таймера с количеством секунд до обратного отсчета от идентификатора пробела «count».Обратный отсчет JS + PHP, что случилось?

Пример:

<p id="hello">Wait <span id="count">5</span> secs</p> 

<?php 
echo '<script type="text/javascript">' 
    , 'timer(5);' 
    , '</script>'; 
?> 
<script> 
function timer(tiempo){ 

    setInterval(function() { 
    tiempo--; 
    if (tiempo >= 0) { 
     span = document.getElementById("count"); 
     span.innerHTML = tiempo; 
    } 
    // Display 'counter' wherever you want to display it. 
    if (tiempo === 0) { 
     window.location.reload(); 
     clearInterval(tiempo); 
    } 

    }, 1000); 

}); 
</script> 

Что случилось?

+0

Какие ошибок вы получаете? – j08691

+0

Uncaught ReferenceError: таймер не определен xfantasy.php: 306 (анонимная функция) – Catalufo

+0

Удалите родительские элементы вокруг '(function timer() {[...]})()'. Вы закончили с 'function timer() {[...]}' only –

ответ

0

Определим функцию до того, как называется:

<script type='text/javascript'> 
function timer(tiempo){ 
    setInterval(function() { 
    tiempo--; 
    if (tiempo >= 0) { 
     span = document.getElementById("count"); 
     span.innerHTML = tiempo; 
    } 
    // Display 'counter' wherever you want to display it. 
    if (tiempo === 0) { 
     window.location.reload(); 
     clearInterval(tiempo); 
    } 

    }, 1000); 

} 
</script> 
<p id="hello">Wait <span id="count">5</span> secs</p> 

<?php 
echo '<script type="text/javascript">' 
    , 'timer(5);' 
    , '</script>'; 
?> 
0

Проблема здесь не имеет ничего общего с PHP.

В JavaScript в HTML-документе:

  • Функциональные декларации поднятым
  • Все сценарии одни и те же рабочую среду

Однако:

  • Функции не водрузил от более поздний сценарий к более раннему сценарию

У вас работает скрипт, который пытается запустить функцию таймера.

Затем вы запускаете скрипт, который определяет эту функцию.

Этого не существует во времени.

Либо:

  • Сменный порядок <script> элементов или
  • Удалите первый </script> тег и второй <script> тег
0

Проверьте демо.

HTML

<p id="hello">Wait <span id="count">5</span> secs</p> 
<input type="button" value="start" id="start" /> 

Jquery и JS

$('#start').click(function(){ 
showTimer(5); 
}); 

function showTimer(tiempo){ 

    setInterval(function() { 
    tiempo--; 
    if (tiempo >= 0) { 
     span = document.getElementById("count"); 
     span.innerHTML = tiempo+'.....'; 
    } 
    // Display 'counter' wherever you want to display it. 
    if (tiempo === 0) { 
    // window.location.reload(); 
     clearInterval(tiempo); 
     alert('movie starts......'); 
    } 

    }, 1000); 

} 

DEMO

http://jsfiddle.net/nadeemmnn2007/jeps93gy/ 
Смежные вопросы