2012-08-17 3 views
0

그래서 난 아무것도의 시작 부분에 선언 된 객체 또는 배열을 가지고 배열/OBJ jQuery를 외부에서 액세스 할 수 없습니다 내가 모든 외부 이벤트 기능

var Thing = {title:'horse'}; 

그럼 내가있어 -

$('.clickedIt').fadeOut(200, function() { console.log(Thing.title); } 

오류가 발생합니다. 그러나, 만약 내가 fadeOut에서 같은 콘솔 로그 위에 위치한다면, 괜찮을 것이다.

+1

어떻게 실패하는 따옴표 내에서 정의되지 않은 랩 그것을 litral 문자열을 만드는 것입니다 제목 말에 할당 된 값? 'FingOut'은'Thing'과 관련하여 어디에서 호출 되었습니까? – pimvdb

+1

Google에서 볼 수있는 더 완벽한 스크립트를 제공 할 수 있습니까? 여기서의 문제는 '존재'의 범위에 크게 의존 할 것이다. – jackwanders

답변

4

무언가를 글로벌하게하려면 window 개체에 정의하십시오.

window.Thing = { title: 'horse '}; 

다음과 같이 사용 :

$('.clickedIt').fadeOut(200, function() { 
    console.log(window.Thing.title); 
}); 

, 내가 이름 간격으로보고 추천 할 것 window 객체에 변수의 숫자를 넣어 그냥 참고 사용하지 않는 것이 좋습니다 : http://addyosmani.com/blog/essential-js-namespacing/

다음은 예제입니다.

//simple JavaScript module 
(function(window) { 
    //define your applications root namespace 
    window.myApp = { 
     Thing: { title: 'horse '} 
    }; 
})(window); 

//jQuery ready function 
$(function() { 
    $('.clickedIt').fadeOut(200, function() { 
     console.log(myApp.Thing.title); 
    }); 
}); 
1

T 그는 당신이

Live Demo

var Thing = {title:'horse'}; 
$('.clickedIt').fadeOut(200, function() { console.log(Thing.title); })​ 
+1

투표 실패 이유? – Adil

+0

나는 downvote하지 않았지만, OP는 console.log를 밖에 두어 작동한다고 말 했으므로, 'horse'는 문제가되지 않는다. – pimvdb

+0

질문을 복사하여 붙여 넣은 것처럼 보입니다. 나는 당신이 지금 당신이 설명하는 당신의 변경을 본다, 그러나 타자를 치는 민주당 원이었다, 그래서 문제점이 아니다. – waxical

관련 문제