2012-03-06 3 views
0

Я пытаюсь показать часы при нажатии кнопки, но и вызывать событие ожидания ожидания, чтобы постоянно показывать текущее время. но он ботинок только один раз, когда я нажимаю кнопку. и если если я нажму через некоторое время, тогда он также будет работать, но не будет показывать постоянно меняющееся время.javascript timing

сценарий

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: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

Как просто изменив строку на: 'вар т = SetTimeout (ShowTime, 1000);' –

ответ

5

Вы должны использовать var t = setTimeout(showTime, 1000); вместо этого.

+0

что разница м.т. вар т = SetTimeout (ShowTime(), 1000) ; и var t = setTimeout (showTime, 1000) –

+1

Первым аргументом 'setTimeout' должен быть _function_, который является' showTime' в вашем случае. 'showTime()' является ** результатом ** вызова функции _showTime_, который является 'undefined' в вашем случае (функции, которые завершаются не через оператор' return', неявно возвращают 'undefined'.) –

+0

мой код работал просто выполнение var t = setTimeout ('showTime()', 1000); –

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

Или использовать его в функции, как вам нравится. Тогда вам не нужно устанавливать таймаут после каждого прогона.