0

メッセージを表示したり、ユーザーが設定した時間に音を鳴らしたりする単純なバニラ JavaScript の目覚まし時計の正しいロジックを作成することができません...ロジックを正しくするのを手伝ってください。

ここに私のJavaScriptコードがあります:

        <script>
            function setAlarm(){
             //taking value  of time
            var a=document.getElementById("H").value;
            var b=a*3600000;//converted to millisecound
            var c=document.getElementById("M").value;
            var d=c*60000;//converted to millisecound
            var e=d+b;//addition of millisecound
            

             //live values of time
            var f=h*3600000;//converted to millisecound
            var g=m*60000;//converted to millisecound
            var i=g+h;//addition of millisecound

                

                var j=0;
                if(i>=e){
                   j=i-e;
                }else{
                   j=e-i;
                }//else
            document.getElementById("demo2").innerHTML=j;
                setInterval(test,j);
                if (d==g){
                    console.log("if called");
                    test();
                }//if
            }
            function test(){
                console.log("test called")
                document.getElementById("demo2").innerHTML="its work";
            }
            var d=new Date();
               var h=d.getHours();
               document.getElementById("hours").innerHTML=h;
   
               var m=d.getMinutes();
               document.getElementById("minutes").innerHTML=m;
   
               var s=d.getSeconds();
               document.getElementById("secound").innerHTML=s;



            setInterval(repeat,1000);

            function repeat(){
               var d=new Date();
               var h=d.getHours();
               document.getElementById("hours").innerHTML=h;
   
               var m=d.getMinutes();
               document.getElementById("minutes").innerHTML=m;
   
               var s=d.getSeconds();
               document.getElementById("secound").innerHTML=s;
               
            }
            var i=0;
           function ChangeTheam(){
                i++;
                if(i%2){
                    document.body.style.backgroundColor= "black";
                    document.getElementById("hours").innerHTML.style.color = "blue";
                }else{
                    document.body.style.backgroundColor= "white";
                }//else
           }//change theam function
            
        </script>

誰かが望むなら HTML コードを提供できますが、最初の時点でロジックを正しく作成できないため、それが必要になるとは思いません。

ありがとう :)

4

1 に答える 1

0

あなたのコードで

 //live values of time
 var f=h*3600000;//converted to millisecound
 var g=m*60000;//converted to millisecound
 var i=g+h;//addition of millisecound`

結果として、アラームがトリガーされるまでの時間が大幅に短縮される可能性があるため、g+h代わりに追加しました。g+f

var s=d.getSeconds();
document.getElementById("secound").innerHTML=s;

これがあなたが要素を識別したものであるかどうかはわかりませんが、「秒」ではなく「秒」を意味していると思います

それ以外の場合、コードに問題はなく、正常に動作するはずです。

于 2020-02-12T05:25:41.277 に答える