我正在使用像这样的按钮
<button id="my_Button"></button>
和状态消息
<span id="loading"></span>
单击按钮时,会调用处理程序
$(document).ready(function(){
document.getElementById("iFFT_Button").addEventListener('click', myhandler);
然后处理函数是
function myhandler()
{
$("#loading").html("performing calc");
setTimeout(performLongCalculation(),0);
}
在performLongCalculation函数结束时,文本被清除,即$("#loading").html("");
问题是,在长时间计算过程中,按钮仍然被按下,并且跨度文本没有更新,踩着代码认为每件事情都运行正常,任何想法为什么不更新?我原以为单击处理程序会因为长计算的setTimeout函数而快速返回。
干杯
戴夫
答案 0 :(得分:1)
也许在函数调用后删除括号会有所帮助。在你的情况下不应该需要它们。
function myhandler() {
$("#loading").html("performing calc");
setTimeout(performLongCalculation, 0);
}
答案 1 :(得分:0)
在匿名函数中包含对performLongCalculation的调用。
function myhandler()
{
$("#loading").html("performing calc");
setTimeout(function() { performLongCalculation() },0);
}
尝试将超时设置为4毫秒。
setTimeout(performLongCalculation(),4);
<强> https://developer.mozilla.org/en-US/docs/Web/API/Window.setTimeout 强>