gpt4 book ai didi

javascript - 暂时阻塞 UI,并运行回调

转载 作者:行者123 更新时间:2023-11-29 17:13:50 24 4
gpt4 key购买 nike

为了简单起见,我想要一个通用函数来阻止 UI(即点击事件,但可能不是悬停等),并可选择在完成时运行回调。到目前为止我有这个:

blockedUI=false;
function blockUI(milliseconds,callback)
{
blockedUI=true;
if (callback===undefined)
setTimeout(function(){blockedUI=false;},milliseconds);
else
setTimeout(function(callback){blockedUI=false;callback();},milliseconds);
}

function itemClicked(item)
{
if(blockedUI)return;

//handle click
}

blockUI(1000,function{alert("UI is now available");});

基本上,每当我处理某事时,我都会检查 UI 当前是否被“阻止”。我在这里的具体问题实际上是我无法弄清楚如何将回调函数传递给我传递给 setTimeout 的匿名函数。

真正的问题是,如何传递回调参数并在setTimeout匿名函数参数的主体中调用它

最佳答案

您可以为 setTimeout 指定额外的参数,这些将在函数被调用时传递给您提供给 setTimeout 的函数——因此,

setTimeout(function(foo) { alert(foo); }, 100, "green")

超时后会发出“绿色”警报。您可以像那样将回调传递到您的函数中。

话虽如此,在您的情况下,您根本不需要将回调传递给匿名函数——它应该在匿名函数的范围内,因为它是在 blockUI 内部声明的。我认为这是更好的方法,因为它更清晰,也更受旧版浏览器支持。

关于javascript - 暂时阻塞 UI,并运行回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19801024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com