JQuery/Javascript-当倒计时为零时重定向到上一页



这是我的第一个问题,我对JS还很陌生。不管怎样,我在JSFiddle(http://jsfiddle.net/gPrwW/395/),我想知道在计时器变为零时,需要进行哪些编辑才能重定向到上一页?谢谢你的帮助!

$(document).ready(function(e) {
  var $worked = $("#worked");
  function update() {
    var myTime = $worked.html();
    var ss = myTime.split(":");
    var dt = new Date();
    dt.setHours(0);
    dt.setMinutes(ss[0]);
    dt.setSeconds(ss[1]);
    var dt2 = new Date(dt.valueOf() - 1000);
    var temp = dt2.toTimeString().split(" ");
    var ts = temp[0].split(":");
    $worked.html(ts[1] + ":" + ts[2]);
    setTimeout(update, 1000);
  }
  setTimeout(update, 1000);
});

您可以使用此;),将返回上一页。

    function myReturnFunction() {
        setTimeout(function(){ 
           history.go(-1);
        }, 3000);
    };

试试这个:

<html>
<head>
  <script src="https://code.jquery.com/jquery-2.2.3.js" integrity="sha256-laXWtGydpwqJ8JA+X9x2miwmaiKhn8tVmOVEigRNtP4=" crossorigin="anonymous"></script>
  <script>
    $(document).ready(function(e) {
      var $worked = $("#worked");
      function update() {
        var myTime = $worked.html();
        if (myTime == "00:00") {
          window.history.back();
          return;
        }
        var ss = myTime.split(":");
        var dt = new Date();
        dt.setHours(0);
        dt.setMinutes(ss[0]);
        dt.setSeconds(ss[1]);
        var dt2 = new Date(dt.valueOf() - 1000);
        var temp = dt2.toTimeString().split(" ");
        var ts = temp[0].split(":");
        $worked.html(ts[1] + ":" + ts[2]);
        setTimeout(update, 1000);
      }
      setTimeout(update, 1000);
    });
  </script>
</head>
<body>
  <div id="worked">00:10</div>
</body>
</html>

这个怎么样?

if (ts.join("") === "000000") {
  alert("Zero!")
  //location.href = "https://www.google.co.jp"
} else {
  $worked.html(ts[1] + ":" + ts[2]);
  setTimeout(update, 1000);
}

我刚刚更新了您的代码。Check it out https://jsfiddle.net/gPrwW/397/

关于您发布的代码中发生的事情,有几件事需要注意。首先,您使用的是一个Date对象。Date的文档可在此处找到:(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date)。所以你可以做一些事情,检查ts[0]ts[1]是否都为零,但它们都是字符串,就我个人而言,我不喜欢这样检查字符串。

然而,Date有两个方法,称为getMinutes()getSeconds(),它们都返回数字。因此,您可以在初始化temp之前进行检查。这可能看起来像这样:

if(dt2.getMinutes() === 0 && dt2.getSeconds() === 0) {
  // do what you want to do at the end of countdown
  return; // return out of the function to stop it from continuing
}

接下来,要转到上一页,请使用window.history。如果要转到完全不同的页面,可以使用window.location。两者的文档都在这里:https://developer.mozilla.org/en-US/docs/Web/API/Window

我真的建议你看一下文档,不仅因为你还可以做其他很酷的事情,而且它会让你习惯于看文档来寻找答案。里面有很多非常有用的信息。

最新更新