2011-11-24 5 views
1

자바 스크립트 및 전역 변수에 문제가 있습니다. 솔루션을 검색 할 때 몇 분 전에 읽은 기사에 따르면 함수 외부에서 정의 된 변수는 전역이며 문서 전체에서 사용할 수 있습니다. 글쎄, 이것은 나를 위해 작동하지 않습니다. 기본적으로, 심지어 내가 왜 여기에 프로세스를 단순화하려고 :함수가 전역 변수를 읽지 않습니다.

var list_amount = 1; 
function createElements() { 
    window.alert('0'); 
    var cintfa_list_top = $("<div>").attr({"id":"intfa_list_top"}); 
    $('#intfa_list').empty() 
    $('#intfa_list').append(cintfa_list_top); 
    var j=0; 
    window.alert('1'); 
    for (j=0;j<list_amount;j++) { 
     window.alert('2'); 
      ...... 
      .... 
      .. 

I는 0과 1의는 Window.alert를 얻을 수 있지만 나는 함수 내부는 Window.alert (list_amount)를 설정 2를위한, undefined가 반환됩니다. 전역 변수가 함수 내에서 작동하면 안됩니까? 그리고 내가 잘못 이해했다면 변수를 함수 매개 변수에 추가하지 않고도 변수를 전역 변수로 만들 수있는 방법이 있습니까?

+0

createElements()의 외부에는 무엇이 있습니까? 그 기능이 다른 기능 안에 있습니까? 그렇다면 list_amount는 전역이 아니며 해당 함수의 로컬 일 것입니다 –

+1

list_amount를 선언하기 전에 createElements를 호출하고 있습니까? –

+2

그게 전부 야. 루크가 가지고있어. 호이 스팅 문제 야. 선언을 맨 위로 올리고 undefined로 설정 한 다음 1로 설정 한 행 앞에 createElements를 호출하면 정의되지 않음 –

답변

0

스크립트를 정지시키는 코드에 오류가 있습니다. 그대로, 함수를 닫으면 함수가 잘 작동합니다 (여기에 정의되지 않았으므로 $를 주석 처리합니다).

Firebug 또는 Chrome/Opera 자바 스크립트 콘솔에 오류가 있는지 확인하십시오.

LE : jsfiddle.net/ALd2b/2를 본 후에는 변수 할당 후 함수를 호출해야합니다.

0

코드 http://jsfiddle.net/lastrose/ALd2b/을 사용해 보았는데 제대로 작동하는 것 같습니다. 내가 생각할 수있는 것은 그것이 모두 정의 된 부분입니다.

+0

흠 멋지다. 그러면 어딘가 다른 코드 오류가 발생할 수 있습니다. 자바 스크립트 bugfixing ahoy .. 테스트 주셔서 감사합니다 :) – user1064701

+0

나는 그의 코드를 추측하고있어 더 http://jsfiddle.net/ALd2b/2/ –

+0

아니, 슬프게도, 그렇지 않습니다. 그것은 쉬운 수정 일 것입니다. – user1064701

관련 문제