倒计时JS+PHP,怎么了?

Countdown JS+PHP, what's wrong?

我正在尝试使此功能正常工作,但我不知道出了什么问题,而且我不太擅长 js。 我想用秒数调用我的计时器函数,从跨度 ID "count".

开始倒计时

示例:

<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>

怎么了?

在调用之前定义函数:

<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>';
?>

此处问题与PHP无关。

在 JavaScript 中 HTML 文档中:

  • 函数声明已提升
  • 所有脚本共享相同的工作环境

但是:

  • 函数不会从后面的脚本提升到前面的脚本

您正在 运行 正在尝试 运行 计时器功能的脚本。

那么您正在 运行ning 一个定义该函数的脚本。

时间不存在

任一:

  • 交换<script>个元素的顺序
  • 删除第一个 </script> 标签和第二个 <script> 标签

查看演示。

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);

}

演示

http://jsfiddle.net/nadeemmnn2007/jeps93gy/