簡単にするために、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 匿名関数パラメータの本体で呼び出すことができるかということです。