3

所以我有这段代码来隐藏某些 div,我想在 html 代码中添加 div 正在关闭的秒数,例如:5、4、3、2、1,(关闭);

这是代码:

<script type="text/javascript">
    jQuery(document).ready(function () {
        var isVisible;
        var cvr = $("#cover");
        var dlg = $("#dialog");
        isVisibleCvr = cvr.is(":visible");
        isVisibleDlg = dlg.is(":visible");
        if(isVisibleCvr && isVisibleDlg == true){
            setTimeout(function() {
                cvr.hide();
                dlg.hide();
            }, 5000);
        }
    });
</script>

有什么建议吗?

4

3 回答 3

4

一个办法 :

 jQuery(document).ready(function () {
    var cvr = $("#cover");
    var dlg = $("#dialog");
    var t = 5;
    isVisibleCvr = cvr.is(":visible");
    isVisibleDlg = dlg.is(":visible");
    if(isVisibleCvr && isVisibleDlg == true){
        (function countDown(){
            if (t--) {
               $('#t').text(t + ' s');
               setTimeout(countDown, 1000);
            } else {
               $('#t').text('gone!');
               cvr.add(dlg).hide();
            }
        })();
    }
});

我认为代码是自我解释的。如果不是,请要求澄清。

示范

于 2013-09-09T14:10:54.603 回答
3

您可以使用该setInterval功能,使用以下脚本:(演示

<script type="text/javascript">
 jQuery(document).ready(function () {

  var counter = 5;
  var interval = setInterval(function() {
      counter--;
      jQuery("#number").html(counter);
      if (counter == 0) {
        //Do something
        jQuery("#number").html("Countdown ended!");
        // Stop the counter
        clearInterval(interval);
      }
  }, 1000);

 });
 </script>

和以下div:

<div id="number">5</div>

查看 jsFiddle 上的现场演示:http: //jsfiddle.net/RtFKr/

于 2013-09-09T14:14:40.087 回答
0

假设您的 javascript 代码正在运行,您可以使用它:

    <script type="text/javascript">
    jQuery(document).ready(function () {
        var isVisible;
        var countdown = 5;
        var cvr = $("#cover");
        var dlg = $("#dialog");
        isVisibleCvr = cvr.is(":visible");
        isVisibleDlg = dlg.is(":visible");
        if(isVisibleCvr && isVisibleDlg == true){
            setTimeout(function() {
                if(--countdown == 0)
                {
                    cvr.hide();
                    dlg.hide();
                }
                else
                {
                    // set text in div
                }
            }, 1000);
        }
    });
</script>

每秒钟倒计时都会降低,并且在 0 时,您的 div 会被隐藏。

于 2013-09-09T14:12:00.523 回答