제이쿼리 변수 전역변수로 바꾸고싶은데 잘모르겠어요
$('#Algorithm> a').on('click', function () {
$('#dropdown').text($(this).text());
var Type = $(this).text();
});
드롭다운에서 선택한 값 변경하는거랑 선택한 값을 변수에 넣는데
이거는 전역변수로 사용못할것같은데
이걸 전역변수로 쓰고싶으면 어떻게 바꿔야할까요 ..
간단히 설명 드리면
함수(Function) 안에서 선언되면 '지역'변수, 함수 바깥에서 선언되면 '전역'변수이고 상대성을 가지고 있습니다.
var global = 'global' $(document).ready(function(){ var foo = 'foo' function variable_A(){ var bar= 'bar' } })위 코드를 예로들면,
bar 변수는 varialble_A 함수의 지역변수입니다.
foo 변수는 varialble_A 기준으로 전역변수이고 $(document).ready() 함수 기준으로는 지역변수입니다.
global 변수는 어느 함수에도 포함되어있지 않기 때문에 어디에서도 접근 가능한 전역변수 입니다.
같은 맥락으로 문의하신 코드의 Type 변수를 전역으로 사용하시려면 아래와 같은 방식으로 진행하시면 됩니다.
var Type = ''; // 전역변수를 만들고 초기값 할당 $('#Algorithm> a').on('click', function () { Type= $(this).text(); // 전역변수에 클릭한 요소의 text정보를 담는다 $('#dropdown').text(Type); });변수에 scope 에 대한 공부가 선행되셔야 할것 같습니다.
일단 코드만 보여드리면 아래와 같습니다.
var Type = ""; $('#Algorithm> a').on('click', function () { $('#dropdown').text($(this).text()); Type = $(this).text(); });변수는 변수가 생성 혹은 값이 할당되는 괄호({}) 의 범위를 넘어가면 값이 초기화되거나 삭제됩니다.
아래 두 글 보시면 자세히 설명되어있으니 공부하실때 유용하실것 같습니다 ^^
https://poiemaweb.com/js-scope
https://medium.com/@yeon22/javascript-%EC%8A%A4%EC%BD%94%ED%94%84-scope-%EB%9E%80-bc761cba1023
안녕하세요.
var Type을 전역변수로 하고 싶다는 건지요?
참고로 전역변수는 프레임워크에서 사용하는게 아니면 사용 안하는게 좋습니다.
아래처럼 사용할 수는 있습니다.
jQuery(function($) { var type; $('#Algorithm > a').on('click, function() { type = $(this).text(); $('#dropdown').text(type); }); // 바깥 부분에서 type 변수 사용 가능 });