2014-04-25 4 views
0
var matte_canvas_width = $("#matte_canvas").width(); 
var matte_canvas_height = $("#matte_canvas").height(); 
function moulding_draw(img, fillet) 
{ 

    //var matte_canvas_width = $("#matte_canvas").width(); 
    //var matte_canvas_height = $("#matte_canvas").height(); 
    console.log("matte_canvas_width: " + matte_canvas_width); 
    console.log("matte_canvas_height: " + matte_canvas_height); 
} 

함수 외부에서 변수를 선언하면 콘솔에서 null을 값으로 출력합니다. 왜 이런 일이 일어나는 걸까요?왜 전역 변수가 null입니까?

+0

될 것 폭();.이 기능을 실행할 때''순간에, 널 $ ("# matte_canvas") width();'가 null이 아닙니다 – Peter

+0

외부 범위가 무엇인지는 명확하지 않습니다. – Piskvor

답변

1

올바른 방법이

var matte_canvas_width; 
var matte_canvas_height; 

$(document).ready(function() { 
    matte_canvas_width = $("#matte_canvas").width(); 
    matte_canvas_height = $("#matte_canvas").height(); 
    moulding_draw("", ""); 
}); 

function moulding_draw(img, fillet) 
{ 

    //var matte_canvas_width = $("#matte_canvas").width(); 
    //var matte_canvas_height = $("#matte_canvas").height(); 
    console.log("matte_canvas_width: " + matte_canvas_width); 
    console.log("matte_canvas_height: " + matte_canvas_height); 
} 
+0

해당 값에 대해 여전히 null이 표시됩니다. – AllisonC

+1

This http://jsfiddle.net/xkMKs/2/ 콘솔을 확인하십시오 @ AllisonC –

+0

네, 잊었어요, 당신도 함수를 호출해야합니다 :) 업데이트 대답 –

0

처음에는 아무 것도 아니지만, 으로 생각하면으로 설정했습니다.

당신은 어떻게 $("#matte_canvas").width();이 당신에게 처음에 가치를주고 있는지 알고 계십니까? DOM을 제대로 넣었 때

2

라인

var matte_canvas_width = $("#matte_canvas").width(); 
var matte_canvas_height = $("#matte_canvas").height(); 

은 시간에 호출해야합니다. 순간에 당신이 변수`$ ("#의 matte_canvas")에 값을 할당 할 때 때문에

이 일을
+1

+1 여기를 참조하십시오 ondomready http://jsfiddle.net/xkMKs/ –

+0

dom이 제대로로드되었는지 어떻게 확인합니까? – AllisonC

+0

'$ (document) .ready (function() {}); 안에 코드를 래핑하십시오. [here] (http://jsfiddle.net/xkMKs/3/)를 참조하십시오. @ ZaheerAhmed의 의견을 참고하십시오. – mithunsatheesh