好的,我应该创建一个用户输入小时的程序,程序将根据小时数计算费用。它还应该显示所有费用的总和,所以我虽然我应该使用哨兵,因为我没有特定数量的输入。当我把这个循环时,页面变得没有响应,当我删除它工作正常,但我只能输入一个。这是代码
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;
答案 0 :(得分:0)
如果你想重复一个函数,你必须使用setInterval(function,period)
或setTimeout
再次调用自身内部的函数而不是使用while循环!但是,当没有任何改变时,我无法找到你重复该功能的原因。如果您有基于时间的计算,则必须更新函数内部的时间(但没有时间更新)。我已使用setTimeout
和嵌入式控制台重写了该函数,以确保计算器每3秒调用一次。
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;