0

我有一个函数 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(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 }

但这也没有用。

你能帮我或建议一个更好的方法来解决这个问题。

4

1 回答 1

1
var n = document.getElementById('number').value;
var s = document.getElementById('size').value;

变量ns以上是字符串而不是数字。您需要使用 parseFloat 或 parseInt 来转换它。

var n = parseInt(document.getElementById('number').value, 10);
var s = parseInt(document.getElementById('size').value, 10);
于 2012-10-25T14:00:01.123 回答