-4

カウントダウンタイマーの次のコードがあります。JavaScript 部分を jQuery に変換する必要があります。カウントダウン タイマーは、ページの読み込み時に開始されます。ページの読み込み時に diffTime 関数を読み込む必要があるため、どうすればよいですか。私を助けてください。前もって感謝します。

編集: jquery 呼び出しが ** 関数 Tick() ** から ** 関数 CreateTimer() ** にアクセスできないことがわかりました。jQuery に ** setTimeout() ** のライブラリはありますか? 私がこれまでに知っているように、それはJSにネイティブです。

<html>
<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
    <script type="text/javascript">
        var Timer;
        var TotalSeconds;


        function CreateTimer(TimerID, Time) {
            Timer = document.getElementById(TimerID);
            TotalSeconds = Time;
            //UpdateTimer()
            window.setTimeout("Tick()", 1000);
        }

        function Tick() {
            if (TotalSeconds <= 0) {
                //alert("Time's up!")
                document.getElementById("timeMsg").innerHTML = "Market closed!! ";
                return;
            }

            TotalSeconds -= 1;
            UpdateTimer()
            window.setTimeout("Tick()", 1000);
        }

        function UpdateTimer() {
            var Seconds = TotalSeconds;

            var Days = Math.floor(Seconds / 86400);
            Seconds -= Days * 86400;

            var Hours = Math.floor(Seconds / 3600);
            Seconds -= Hours * (3600);

            var Minutes = Math.floor(Seconds / 60);
            Seconds -= Minutes * (60);


            var TimeStr = ((Days > 0) ? Days + " days " : "") + LeadingZero(Hours) + ":" + LeadingZero(Minutes) + ":" + LeadingZero(Seconds)


            Timer.innerHTML = TimeStr;
        }



        function LeadingZero(Time) {

            return (Time < 10) ? "0" + Time : + Time;

        }

        function diffTime(){

            var startTime = 10*60 + 30; //starting time in minute
            var lastTime = 16*60 + 30;  //ending time in minutes

            var thisTime = new Date();              // now
            var currentYear = thisTime.getFullYear();        
            var currentMonth = thisTime.getMonth();
            var currentDay = thisTime.getUTCDate();
            var currentHour = thisTime.getHours();
            var currentMinute = thisTime.getMinutes();

            var currentTime = currentHour*60 + currentMinute;   //current time in minute

            if(currentTime >= startTime && currentTime < lastTime){

                var endTime = new Date(currentYear,currentMonth,currentDay,16,30);  // 4:30pm           

                var diff = endTime.getTime() - thisTime.getTime();   // now
                var remainTime = diff / (1000);     // positive number of days
                remainTime = Math.ceil(remainTime);
                CreateTimer("timer", remainTime);


            }else{
                document.getElementById("timeMsg").innerHTML = "Market closed!! ";
                document.getElementById("timer").innerHTML = "00:00:00";

            }

        }
        window.onload = diffTime;
    </script>


</head>
<body>

    <div><span id="timeMsg">Elapsed time remain: </span><b><span id='timer'></span></b></div>


</body>

4

2 に答える 2

0

ページ全体 (つまり、画像、オブジェクトなど) が読み込まれた後に開始する場合は、次のようにします。

$(window).load(function() {}

それ以外の場合は、HTML が読み込まれ、DOM の準備が整ったときにタイマーを開始できます。

$(document).ready(function() {}
于 2013-03-25T07:06:52.513 に答える
0

document.ready() で関数を呼び出します

 $( document ).ready( function ()
    {

diffTime();
});
于 2013-03-25T07:00:07.803 に答える