繁体   English   中英

javascript计时

[英]javascript timing

我试图在单击按钮时显示一个时钟,然后调用set timeout事件以连续显示当前时间。 但是每当我单击按钮时,它只会穿一次鞋。 如果我在一段时间后单击,它也可以工作,但不会显示持续变化的时间。

脚本

function showTime() {

        var dat = new Date();
        var h = dat.getHours();
        var m = dat.getMinutes();
        var s = dat.getSeconds();
        var tim = h + " :" + m + ":" + s;
        document.getElementById('MainContent_Label1').innerHTML = tim;
        document.getElementById('MainContent_TextBox1').value = tim;
        var t = setTimeout(showTime(), 1000);

    }
    function Button2_onclick() {
        showTime();
    }

ASP页面

asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <asp:Label ID="Label1" runat="server"></asp:Label>
    <br />
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <input id="Button2" type="button" value="button" onclick="return Button2_onclick()" /><asp:Button ID="Button1" runat="server" Text="Button" 
        onclientclick="showTime()" /><br />
    <br />
</asp:Content>

您应该使用var t = setTimeout(showTime, 1000); 代替。

尝试这个:

var t = setTimeout("showTime()", 1000);

或者您可以使用setInterval()函数来执行重复任务。

像这样:

 <input id="Button2" type="button" value="button" onclick="return Button2_onclick()" /><asp:Button ID="Button1" runat="server" Text="Button" 
        onclientclick="setInterval('showTime()', 1000);" />

或根据需要在功能中使用它。 然后,您无需在每次运行后设置超时。

将您的代码替换为

var t = setTimeout("showTime()", 1000);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM