메뉴 건너뛰기

조회 수 47407 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
<!DOCTYPE html>
<html xmlns='http://www.w3.org/1999/xhtml'>
    <head>
        <title>Real-time Address</title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <link href="stylesheet.css" media="screen" rel="stylesheet" type="text/css" />
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
        <script src="application.js" type="text/javascript"></script>
        </head>
    <body>
        <div id="content">
            <select>
                <option value="">광역시/도</option>
            </select>
            <select>
                <option value="">시/도/군</option>
            </select>
            <select>
                <option value="">읍/면/동</option>
            </select>
        </div>
    </body>
</html>


stylesheet.css

body {
    font-size: 12px;
    background: #FFF;
    color: #333;
    margin: 0;
}

#content {
    margin: 30px;
    padding: 20px;
    background: #7CF;
}


application.js

$(function() {
    var uniqueId = 0;

    function ajaxYqlWithJson(options) {
        var callbackName = 'my_yql_callback_' + ++uniqueId;
        window[callbackName] = options.callback;

        var yql = 'SELECT * FROM json WHERE url="' + encodeURIComponent(options.url) + '"';

        $.ajax({
            url: 'http://query.yahooapis.com/v1/public/yql?q=' + yql +
                '&format=json&callback=' + callbackName,
            dataType: 'script',
            complete: function() {
                delete window[callbackName];
            }
        });
    }

    function createSelectCallback(index) {
        return function(data) {
            var select = $('select').eq(index);
            $(data.query.results.result.subRegion).each(function(i, region) {
                $('<option></option>').attr('value', region.code).text(region.name)
                    .appendTo(select);
            });
        };
    }

    function clearSelect(select) {
        select.html(select.children().first());
    }

    function ajaxGetRegions(options) {
        var level = options.level;
        var code = options.code;
        if (code && level <= 8) {
            ajaxYqlWithJson({
                url: 'http://map.naver.com/common2/getBRegionByCodeAndLevel.nhn' +
                    '?level=' + level + '&code=' + code,
                callback: options.callback
            });
        }
    }

    $('select').each(function(index, select) {
        $(select).change(function() {
            for (var i = index + 1; i < $('select').length; i++) {
                clearSelect($('select').eq(i));
            }
            ajaxGetRegions({
                level: 2 + 3 * (index + 1),
                code: $(this).val(),
                callback: createSelectCallback(index + 1)
            })
        });
    });

    ajaxYqlWithJson({
        url: 'http://map.naver.com/common2/getBRegionByCodeAndLevel.nhn?level=2',
        callback: createSelectCallback(0)
    });
});

List of Articles
번호 제목 날짜 조회 수
227 이메일 체크하기 2014.03.01 5466
226 input에 background-image 이벤트 2014.03.01 5640
225 주민등록번호 체크 file 2014.03.01 6202
224 마우스대면 글자 없어지는 검색창 2014.03.01 6834
223 check box 선택시 색상 변경 file 2014.03.01 6729
222 [jQuery] 실시간 검색어 순위 순서대로 보여주기 2014.03.01 12331
» [jQuery] 상위부터 차례로 지역 선택하기 2014.03.01 47407
220 [jQuery] 탭 메뉴 2014.03.01 6675
219 jQuery 이미지 슬라이드 오버시 큰이미지 보여주기 소스 file 2014.03.01 7235
218 (소스)jqury 롤오버 버튼 쉽게 만들기 file 2014.03.01 6077
217 top 부분이 고정되는 슬라이딩 메뉴입니다 file 2014.03.01 6040
216 [jQuery] textarea 글자수 카운트 2014.03.01 7722
215 클릭위치로 레이어 띄우기 2014.03.01 6487
214 fckeditor 2.6.6 엄청 편해졌네 file 2014.03.01 5666
213 자바스크립트 소수점 자리수 계산 2014.03.01 7172
212 div 높이 가운데정렬 2014.03.01 5864
211 javascript 인쇄 미리보기, 출력, 페이지 설정 등 2014.03.01 33310
210 iframe 자동 리사이즈 2014.03.01 6268
209 활용예제 : 체크박스 전체선택 전체해제 /라디오버튼 2014.03.01 7315
208 자바스크립트, javascript, 간단한 파일 확장자 검사후 retur 2014.03.01 5716
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 13 Next
/ 13

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved