javascript时间

时间:2012-03-06 11:53:01

标签: javascript

我试图在按钮点击时显示一个时钟但是调用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>

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

试试这个:

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

或者根据自己的喜好在功能中使用它。然后,您不需要在每次运行后设置超时。

答案 2 :(得分:1)

替换您的代码
var t = setTimeout("showTime()", 1000);