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