2012-03-06 4 views
0

버튼 클릭시 시계 표시를 시도하고 설정 시간 초과 이벤트를 설정하면 현재 시간이 계속 표시됩니다. 하지만 버튼을 클릭 할 때마다 신발이 단 한 번만 움직입니다. 만약 내가 몇 시간 후에 클릭하면 작동하지만 계속 변화하는 시간은 보이지 않습니다.자바 스크립트 타이밍

스크립트

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

라인을 변경하는 것만 큼 간단에'var에 t =에서는 setTimeout (쇼 타임, 1000),' –

답변

5

대신 var t = setTimeout(showTime, 1000);를 사용해야합니다.

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

하거나 반복적 인 작업, setInterval을() 함수를 사용할 수 있습니다

+0

무슨 차이 BW의 var에 t =에서는 setTimeout (쇼 타임(), 1000) ; 그리고 var t = setTimeout (showTime, 1000) –

+1

'setTimeout'에 대한 첫 번째 인수는 _function_이어야하며, 이는 여러분의 경우'showTime'입니다. 'showTime()'은 _showTime_ 함수 호출의 ** 결과 **입니다. 귀하의 경우에는'undefined'입니다 ('return' 문을 통해 종료되지 않는 함수는 암시 적으로'undefined'를 암시합니다.) –

+0

제 코드는 그냥 작동했습니다 var t = setTimeout ('showTime()', 1000); –

1

이 시도. 이처럼

:

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

또는 당신이 원하는대로 함수를 사용합니다. 그런 다음 매 실행 후 제한 시간을 설정할 필요가 없습니다.

1

교체와 코드

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