javascript - 即使提示位于函数之后,我的 Javascript 提示也会在函数之前运行

标签 javascript function events prompt

我编写了一个小练习程序,显示提示数字的时间表。

我希望在询问用户哪个号码后显示表格。如果用户输入的数字不同于 -1,我想请求另一个数字。

我正在寻找的顺序是提示用户,显示表格,提示用户显示表格...不幸的是,我的程序工作的顺序是提示用户,提示用户,提示用户。 ..紧接着显示每个输入的表格。

显然代码不是这样写的。

		// get number to show time table for
		var aNumber = prompt("Enter the number for time table or -1 to stop the program", ""); 
		
		while(aNumber != -1) {
			timeTableFrom(aNumber); // show time table for the first number
			aNumber = prompt("Enter the number for time table or -1 to stop the program", ""); // ask for another number. HERE IS THE PROBLEM - THIS LINE RUNS BEFORE THE PREVIOUS ONE!
			
		}
		
		document.write("stopped");
		
				
		
		function timeTableFrom(number)
		{
			for (var i = 0; i <= 10; i++)
			{
				document.write(number + " * " + i + " = " + number*i + "<br />");
			}
			
		}

最佳答案

// get number to show time table for
var aNumber = null;
var div = document.getElementById("textDiv");

setTimeout(enterNumber, 0);

function enterNumber()
{
  aNumber = prompt("Enter the number for time table or -1 to stop the program", ""); 

  if (aNumber != -1) {
    timeTableFrom(aNumber); // show time table for the first number
    setTimeout(enterNumber, 0);
  }
  else
    div.innerHTML += "stopped"
}

function timeTableFrom(number)
{
  for (var i = 0; i <= 10; i++)
  {
    div.innerHTML += number + " * " + i + " = " + number*i + "<br />";
  }
}
<div id="textDiv">
</div>

@Teemu 是正确的。我承认,这有点草率,但这应该可行。尽量避免使用 document.write,因为它可能会产生不可预测的结果。相反尝试其他 methods of output

关于javascript - 即使提示位于函数之后,我的 Javascript 提示也会在函数之前运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39211595/

相关文章:

c++ - "const"函数有什么用?

事件的 C# 实现

python - Python中如何正确使用私有(private)函数?

javascript - Angular 2 中的 Leaflet + Google - 瓷砖顺序错误

javascript - ScrollIntoView() 锁定滚动 Angular4

javascript - 如何在浏览器调整大小时启用滚动

multithreading - 如何发送字符串(串口),等待(超时)并捕获回复字符串?

javascript - 了解 JavaScript 的单线程特性

c# - 如何确定事件是由用户操作还是代码触发的?

javascript - 原始数组值被修改