HTML JavaScript虽然循环定点页面没有响应

时间:2018-01-06 15:11:36

标签: javascript html

好的,我应该创建一个用户输入小时的程序,程序将根据小时数计算费用。它还应该显示所有费用的总和,所以我虽然我应该使用哨兵,因为我没有特定数量的输入。当我把这个循环时,页面变得没有响应,当我删除它工作正常,但我只能输入一个。这是代码



 window.addEventListener("load",start,false);
			 function start(){
			 document.getElementById("pagesa").addEventListener("click",llogarit,false);
			 }
			 function llogarit(){
			 var ore=document.getElementById("ore").value;
			 var ore=parseInt(ore);
			 var shuma=0;
			 var totali=0;
			while(ore!=-1)
			{
			 if (ore<=3)
			 {
			 shuma=2;
			 totali=totali+shuma;
			 }
			 else if (ore>3 && ore<=24)
			 {
			 shuma=10;
			 totali=totali+shuma;
			 }
			 else
			 {
			 shuma=2+(ore-3)*0.5;
			 totali=totali+shuma;
			 }
			 document.getElementById("rezultati").innerHTML = "Klienti ka paguar:"+shuma;
            document.getElementById("totali").innerHTML = "Totali eshte:"+totali;
			 }
			  
			 }
&#13;
<label> Ore ne garazh </label>
	   <input type="number" id="ore"/>
	   <button id="pagesa"> Pagesa</button>
	   <p id="rezultati"> </p>
	   <p id="totali"> </p>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

如果你想重复一个函数,你必须使用setInterval(function,period)setTimeout再次调用自身内部的函数而不是使用while循环!但是,当没有任何改变时,我无法找到你重复该功能的原因。如果您有基于时间的计算,则必须更新函数内部的时间(但没有时间更新)。我已使用setTimeout和嵌入式控制台重写了该函数,以确保计算器每3秒调用一次。

&#13;
&#13;
window.addEventListener("load",start,false);
     function start(){		 
        document.getElementById("pagesa").addEventListener("click",llogarit,false);
     }
    function llogarit(){
      var ore=document.getElementById("ore").value;
      var ore=parseInt(ore);
      var shuma=0;
      var totali=0;
      if(ore!=-1){
    		if (ore<=3){
    		shuma=2;
    		totali=totali+shuma;
    		}
    
    		else if (ore>3 && ore<=24) {
    		shuma=10;
    		totali=totali+shuma;
    		}
    
    		else{
    		shuma=2+(ore-3)*0.5;
    		totali=totali+shuma;
    		}
    
    		document.getElementById("rezultati").innerHTML = "Klienti ka paguar:"+shuma;
            document.getElementById("totali").innerHTML = "Totali eshte:"+totali;
          
    	}
      
console.log('function repeated');
setTimeout(function(){llogarit()}, 3000);      
}
&#13;
<label> Ore ne garazh </label>
	   <input type="number" id="ore"/>
	   <button id="pagesa"> Pagesa</button>
	   <p id="rezultati"> </p>
	   <p id="totali"> </p>
&#13;
&#13;
&#13;