関数 draw_integer(n,s,x,y,plotx) があり、座標 (x,y) でサイズ s の HTML5 キャンバスに整数 ,n を描画します。別の関数 draw_num() 内でこの関数を次のように呼び出しています。 ( plot0
、number、size はそれぞれキャンバスの ID、number & size 入力フィールド、関数 drawum() は onclick イベントでトリガーされます。)
function drawnum() {
var n = document.getElementById('number').value;
var s = document.getElementById('size').value;
console.debug(n,s);
draw_integer(n,s,100,100,plot0); // this doesn't get executed
}
function draw_integer(n,s,x,y,plotx){ //lots of code }
drawum の下で呼び出されている draw_integer 関数は実行されません。私が特定できない問題は何ですか。
console.debug() を使用すると、ユーザーが入力した数値とサイズの適切な値が返されます。また、draw_integer(n,s,100,100,plot0) の代わりに draw_integer(3,100,100,100,plot0) (サイズ 100 の番号 3 を描画) を使用した場合も同様です。動作します。
つまり、変数 n と s を drawum() から draw_integer() に渡すときにエラーが発生するということです。
これは変数のローカル スコープが原因ではないかと考えて、これを試してみました。
var n = document.getElementById('number').value;
var s = document.getElementById('size').value;
function drawnum() {
console.debug(n,s);
draw_integer(n,s,100,100,plot0); // this doesn't get executed
}
function draw_integer(n,s,x,y,plotx){ //lots of code }
しかし、それもうまくいきませんでした。
この問題を解決するためのより良い方法を教えてください。