2012-10-25 5 views
0

크기 (x, y)의 HTML5 캔버스에 n을 그립니다. draw_integer (n, s, x, y, plotx) 함수가 있습니다. 다른 기능 draw_num 내부이() 함수를 호출 다음,
값을 함수에 전달할 수 없습니다.

(plot0, 개수 및 크기는 각각의 ID 캔버스의 숫자 & 사이즈 입력 필드 함수 drawnum() 온 클릭 이벤트로 발동된다.이다)
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 } 

drawnum에서 호출되는 draw_integer 함수가 실행되지 않습니다. 식별 할 수없는 문제는 무엇입니까?

console.debug()를 사용하면 draw_integer (n, s, 100,100) 대신 draw_integer (3,100,100,100, plot0) (크기 100의 3 그리기)를 사용하는 경우 사용자가 입력 한 숫자와 크기의 적절한 값을 반환합니다. , plot0) 그것이 작동합니다.

이렇게하면 drawnum()에서 draw_integer()로 변수 n과 s를 전달하는 동안 약간의 오류가 발생합니다.

이것은 변수의 로컬 범위 때문일 수 있다고 생각하여 이것을 시도했습니다.

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); 
관련 문제