2012-10-25 96 views
0

我有一個函數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

你在哪裏宣佈'plot0'? – sgroves

+0

請使用jsfiddle.net重現您的錯誤 – Znarkus

+0

@sgroves plot0在全局範圍內聲明。 – Tomarinator

回答

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);