我有一个函数draw_integer(n,s,x,y,plotx),它在坐标(x,y)中的大小为s的HTML5画布上绘制一个整数n,我在另一个函数draw_num中调用此函数()如下,
(plot0,数字和大小是画布,数字和大小输入字段的相应id,
函数drawnum()正在通过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(3,100,100,100,plot0)(绘制大小为100的数字3)而不是draw_integer(n,s,100,100, plot0)它有效。
这意味着在将可变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 }
但这也不起作用。
你可以帮助我或建议一个更好的方法来解决这个问题。
答案 0 :(得分:1)
var n = document.getElementById('number').value;
var s = document.getElementById('size').value;
上面的变量n
和s
是字符串而不是数字。您需要使用parseFloat或parseInt进行转换。
var n = parseInt(document.getElementById('number').value, 10);
var s = parseInt(document.getElementById('size').value, 10);