これは、 js の処理が完了している間の基本的な Javascript の読み込みメッセージに関する質問です。
私の主な問題は、2 つの関数 drawlegend() と display() が呼び出される前にカーソルが変更されず、すべてが終了した後に変更されることです。カーソルの復元が一時的にコメントアウトされた以下のコードを使用すると、砂時計が表示されますが、すべてが終了した後です。
遅い関数が呼び出される前に、カーソルを砂時計に変更するにはどうすればよいですか?
examplefunc()
{
mini.append("text")
.text(series[i].name)
.attr("x",30)
.attr("y",(15+(15*i)))
.attr("stroke",(d3.rgb(192,192,192)))
.attr("fill",(d3.rgb(192,192,192)))
.attr("stroke-width",0)
.style("font-size","12px")
.attr("text-anchor","start")
.attr("id","legend")
.on('mouseup', legendclick);
}
//===== legend clicked
function legendclick()
{
//--- get mouse pos
var origin = d3.mouse(this);
//--- get channel
var ch=Math.floor((origin[1]-4)/15);
//--- toggle active state
if (series[ch].active==true)
series[ch].active=false;
else
series[ch].active=true;
setTimeout(setcursor("wait"),5);
drawlegend();
display();
//setTimeout(setcursor("default"),5); // temp removed to see any result at all
}
//===== set cursor
function setcursor(cursor)
{
d3.select("body").style("cursor", cursor);
}