2016-08-10 18 views
1

ボタンクリックで呼び出されるJavascript CountDown Timerがあります。 Javascriptは外部ファイルで定義されています。タイマーのCSSは外部ファイルでもあります。関数が定義されていませんJavaScriptのコンフリクト

私はページの開始時にはJavaScriptが含まれている場合、私は

clock.queryselectorが機能

ではありません持って、私はページの最後にはJavaScriptが含まれている場合、私は

を得ましたinitializeClockが定義されていません

このファイルはどこに保管しますか?私は行方不明の何かを助けてください?

HTML

<head runat="server"> 
<title></title> 
<link href="StyleSheet.css" rel="stylesheet" type="text/css" /> 

<%-- <script src="JScript.js" type="text/javascript"></script>--%> 

</head> 
<body> 

<form id="form1" runat="server"> 
<div> 
<h3>Revervation Time Left</h3> 
<div id="clockdiv" runat="server" style=" border: 1px solid red;"> 

    <div> 
    <span class="minutes"></span> 
    <div class="smalltext">Minutes</div> 
    </div> 
    <div> 
    <span class="seconds"></span> 
    <div class="smalltext">Seconds</div> 
    </div> 
</div> 

<div > 
    <asp:Button ID="Button1" runat="server" Text="Button" /> 
</div> 
</div> 

    <asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 

    </form> 

    <script src="JScript.js" type="text/javascript"></script> 

</body> 
</html> 

コード

Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click 

    ScriptManager.RegisterStartupScript(Me, Me.GetType(), "myFunction", "initializeClock('clockdiv', 'Aug 10 2016 13:02:23');", True) 
    'ScriptManager.RegisterClientScriptBlock(Me, Me.GetType(), "none", "CallMe();", True) 

End Sub 

Javascriptを

function getTimeRemaining(endtime) { 
var t = Date.parse(endtime) - Date.parse(new Date()); 
var seconds = Math.floor((t/1000) % 60); 
var minutes = Math.floor((t/1000/60) % 60); 

return { 

    'minutes': minutes, 
    'seconds': seconds 
}; 
} 

function initializeClock(id, endtime) { 
    // alert(endtime); 
    var clock = document.getElementById(id); 

var minutesSpan = clock.querySelector('.minutes'); 
var secondsSpan = clock.querySelector('.seconds'); 

function updateClock() { 
    var t = getTimeRemaining(endtime); 


    minutesSpan.innerHTML = ('0' + t.minutes).slice(-2); 
    secondsSpan.innerHTML = ('0' + t.seconds).slice(-2); 

    if (t.total <= 0) { 
     clearInterval(timeinterval); 
    } 
} 

updateClock(); 
var timeinterval = setInterval(updateClock, 1000); 
} 

F古い構造:

enter image description here

+0

ボタンをクリックするとinitialiseClockが呼び出されるのですか、それともそれ以前に起動しますか? –

答えて

0

あなたがclock.queryselectorを得ている理由を確認してください、このエラー関数ではありません。

あなたのJSファイルには何かがありませんが、あなたがそれに対処することができます。それはあなたを助けるでしょう。

JSファイルを下部に含むと、関数が呼び出されたが、存在しないためエラーが発生する。それは上のほうに置くほうが良いオプションです。

+0

これを上に置くと、その時点でhtmlは完全にレンダリングされず、 'clock.queryselector is not'がスローされます。だから、私はそれを底に置き、それは修正されました。それはその2番目のエラーをスローします。 – Abdul

+0

@abdul意味は次のとおりです。 エラー:clock.queryselectorが修正され、デバッグに集中する必要があります – ssbb

+0

@ssbb:修正方法を教えてください。 – Abdul

関連する問題