CINXE.COM
Dynamic Events in Seoul | The Official Travel Guide to Seoul
<!DOCTYPE html> <html lang="en" class="en exclude-kr v2"> <head> <meta charset="UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width"/> <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> <link rel="canonical" href="http://english.visitseoul.net/event" hreflang="en"/> <link rel="shortcut icon" href="/resources/theme/basic/assets/images/img/Favicon.png?bust=20240828_1" type="image/x-icon"/> <link rel="icon" href="/resources/theme/basic/assets/images/img/Favicon.png?bust=20240828_1" type="image/x-icon"/> <!-- 2023-05-19 GA태그 추가 --> <meta name="google-site-verification" content="sYnH8PZmEBBwuhhJNFmrXl41Apf9Wq1URoNIdZ_O17s" /> <!-- 2022-04-01 [해리] 비짓서울 웹사이트 스크립트 수정 가이드에 따라 적용. ( kjksds ) --> <!-- 2022-10-06 SEO컨설팅내용 적용. --> <meta property="og:locale" content="en_US"/> <!-- Google Tag Manager --> <script>(function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-MP7V6XN');</script> <!-- End Google Tag Manager --> <!-- 2022-04-01 [해리] 비짓서울 웹사이트 스크립트 수정 가이드에 따라 적용.(여기까지) --> <!-- 20220727 게시판등록 게시물의 경우 meta정보가 잘못 세팅되어 다시 강제 설정.(Interceptor에서 잘못 세팅 하고 있음) --> <title>Dynamic Events in Seoul | The Official Travel Guide to Seoul</title> <!-- 2022-04-01 [해리] 네이버, 얀덱스, 빙 검색엔진 SEO도구에서 웹사이트를 인증하기 위해 적용. ( kjksds ) --> <!-- Naver Search Advisor --> <meta name="naver-site-verification" content="002a5d0234ba29e9922b3ebdbed87135e615b07a"/> <!-- Yandex Web Master --> <meta name="yandex-verification" content="4f8315abc348ac7e"/> <!-- 2022-04-01 [해리] 네이버, 얀덱스, 빙 검색엔진 SEO도구에서 웹사이트를 인증하기 위해 적용.(여기까지) --> <!-- 유튜브 아웃링크 인증 메타 --> <meta name="google-site-verification" content="m0f04BF8bnv1rvaYliEU04BW51v3-KxPYOkQyIwLU4U"/> <meta name="google-site-verification" content="rSD5SoJcySIvcHVXRGwBEJN8M77yTv53CN7oNC4Trs0"/> <meta name="google-site-verification" content="UMNHumGYbU6d_EyVgcbZ1Pc3hAQptLkbygD2BUGauoQ"/> <meta name="google-site-verification" content="b97U1yfaGStqdsrQaGAUVbGu1wqNuMl438WLv_XJxpY"/> <meta name="google-site-verification" content="unRPtvO5eLzA6Ik6C0kAA6HPYxW9pfrFYCDJ0oxbhhY"/> <!-- 2023-06-08 비짓서울 국문 및 영문 페이지에 Bing 웹마스터 도구 HTML 태그 삽입 --> <meta name="msvalidate.01" content="C78695BE1ACBC96EE23961DE4222337D" /> <!-- 중문 간체 페이지의 바이두 웹마스터도구 등록 --> <meta name="baidu-site-verification" content="codeva-FDJWprEhMq" /> <meta name="title" content="Dynamic Events in Seoul | The Official Travel Guide to Seoul"> <meta name="description" content="Visit Seoul brings dynamic events for you to have an explosive day! Take quizzes & Join in on exciting events to earn prizes of Seoul and the latest trends! "> <meta name="keywords" content="event "> <meta name="WT.ti" content="Home_Seoul Now_Visit Seoul Events"/> <meta property="og:type" content="Website"> <meta property="og:title" content="Dynamic Events in Seoul"> <meta property="og:description" content="Visit Seoul brings dynamic events for you to have an explosive day! Take quizzes & Join in on exciting events to earn prizes of Seoul and the latest trends! "> <meta property="og:image" content="http://english.visitseoul.net/resources/theme/images/img/visitseoul_sns.png"> <meta name="twitter:card" content="summary"> <meta name="twitter:site" content="@VisitSeoul"> <meta name="twitter:creator" content="@VisitSeoul"> <meta name="twitter:title" content="Dynamic Events in Seoul"> <meta name="twitter:description" content="Visit Seoul brings dynamic events for you to have an explosive day! Take quizzes & Join in on exciting events to earn prizes of Seoul and the latest trends! "> <meta name="twitter:image" content="http://english.visitseoul.net/resources/theme/images/img/visitseoul_sns.png"> <!-- 2022-10-06 SEO컨설팅내용 적용. --> <link rel="alternate" hreflang="ko" href="https://korean.visitseoul.net/index"/> <link rel="alternate" hreflang="en" href="https://english.visitseoul.net/index"/> <link rel="alternate" hreflang="ja" href="https://japanese.visitseoul.net/index"/> <link rel="alternate" hreflang="zh-CN" href="https://chinese.visitseoul.net/index"/> <link rel="alternate" hreflang="zh-TW" href="https://tchinese.visitseoul.net/index"/> <link rel="alternate" hreflang="ru" href="https://russian.visitseoul.net/index"/> <link rel="alternate" hreflang="ms-MY" href="https://malay.visitseoul.net/index"/> <link rel="alternate" hreflang="x-default" href="https://www.visitseoul.net/index"/> <link rel="stylesheet" href="/resources/theme/plugin/ionicons-2.0.1/css/ionicons.min.css?bust=20221228_01"/> <link rel="stylesheet" href="/resources/theme/plugin/jquery.bxslider/jquery.bxslider.css?bust=20221228_01"/> <link rel="stylesheet" href="/resources/theme/plugin/jquery-ui-1.11.4/jquery-ui.min.css?bust=20221228_01"/> <link rel="stylesheet" href="/resources/theme/plugin/lightGallery/dist/css/lightgallery.css?bust=20221228_01"/> <link rel="stylesheet" href="/resources/theme/style/base.css?bust=20241025"/> <link rel="stylesheet" href="/resources/theme/style/sub.css?bust=20241025"/> <link rel="stylesheet" href="/resources/theme/style/print.css?bust=20241025" media="print"/> <link rel="stylesheet" href="/resources/theme/style/guidebook.css?bust=20241025"/> <link rel="stylesheet" href="/resources/theme/style/se_contents.css?bust=20241025"/> <link rel="stylesheet" href="/resources/theme/style/mayday_sub_en.css?20221228_01"/> <script> const sessionId = '1E9FC06F38ED66ADBD8FD45DAEE89026.tomcat2'; const ipAddr = '8.222.208.146'; </script> <script src="/resources/theme/plugin/jquery-1.11.3.min.js"></script> <script src="/resources/theme/plugin/jquery-ui-1.11.4/jquery-ui.min.js"></script> <script src="/resources/theme/plugin/jquery.touchToscroll.js"></script> <script src="/resources/theme/plugin/jquery.validate/jquery.validate.min.js"></script> <script src="/resources/theme/plugin/jquery.cookie.js"></script> <script src="/resources/theme/plugin/jquery.printElement.js"></script> <script src="/resources/theme/plugin/jquery.bxslider/jquery.bxslider.js"></script> <script src="/resources/theme/plugin/lightGallery/dist/js/lightgallery.js"></script> <script src="/resources/theme/plugin/lightGallery/dist/js/lg-fullscreen.js"></script> <script src="/resources/theme/plugin/lightGallery/dist/js/lg-thumbnail.js"></script> <script src="/resources/theme/plugin/lightGallery/dist/js/lg-video.js"></script> <script src="/resources/theme/plugin/lightGallery/dist/js/lg-autoplay.js"></script> <script src="/resources/theme/plugin/lightGallery/dist/js/lg-zoom.js"></script> <script src="/resources/theme/plugin/lightGallery/dist/js/lg-pager.js"></script> <script src="/resources/theme/plugin/lightGallery/lib/jquery.mousewheel.min.js"></script> <script src="/resources/theme/plugin/masonry.pkgd.min.js"></script> <!--[if lt IE 9]> <link rel="stylesheet" href="/resources/theme/style/iecompatibility.css" /> <script src="/resources/theme/plugin/html5shiv.min.js"></script> <script src="/resources/theme/plugin/selectivizr.js"></script> <script src="/resources/theme/plugin/respond.min.js"></script> <![endif]--> <script src="/resources/theme/script/visit.seoul.custom.class.js"></script> <script src="/resources/theme/script/visit.seoul.function.js"></script> <script src="/resources/theme/script/visit.seoul.indexeddb.js"></script> <script src="/resources/theme/script/jquery.validation.rule.js"></script> <script src="/resources/theme/script/common.js?bust=20240829"></script> <script src="/resources/theme/plugin/owlCarousel/owl.carousel.js"></script> <link rel="stylesheet" href="/resources/theme/plugin/owlCarousel/owl.carousel.min.css"/> <link rel="stylesheet" href="/resources/theme/plugin/owlCarousel/owl.theme.default.min.css"/> <!-- 2022추가 --> <script src="/resources/theme/plugin/animated-event-calendar/jquery.simple-calendar.js?bust=20230925_01"></script> <link type="text/css" rel="stylesheet" href="/resources/theme/plugin/animated-event-calendar/simple-calendar.css?bust=20231218_01" class="css"> <!-- 2021추가 --> <script src="/resources/theme/plugin/imageMapResizer/imageMapResizer.js?bust=20221228_01"></script> <script src="/resources/theme/plugin/circleProgress/circle-progress.js?bust=2022128_01"></script> <script src="/resources/theme/plugin/echarts-5.1.2/echarts.common.js?bust=2022128_01"></script> <link type="text/css" rel="stylesheet" href="/resources/theme/style/2021/safe_caster.css?bust=20240827" class="css"> <!--2020추가--> <!-- 2024-08-08 [해리] About Seoul swiper 적용 안되게 --> <!-- 202408//(Ina) main--renewal-2024 메인개편 plugin 추가 --> <script src="/resources/theme/plugin/swiper/swiper-11.1.9/swiper-bundle.min.js"></script> <script src="/resources/theme/plugin/imagesloaded-4.1.4/imagesLoaded.min.js"></script><!-- 202408//(Ina) main--renewal-2024 메인개편 plugin 추가 --> <script src="/resources/theme/plugin/gsap-3.12.5/gsap.min.js"></script><!-- 202408//(Ina) main--renewal-2024 메인개편 plugin 추가 --> <!-- 20221130//(Ina)메인개편이후 파일명 common.js으로 변경예정 --> <link type="text/css" rel="stylesheet" href="/resources/theme/style/2020/common.css?bust=20240905" class="css"> <link type="text/css" rel="stylesheet" href="/resources/theme/style/2020/main.css?bust=20240829" class="css"> <!-- 2024-08-08 [해리] About Seoul swiper 적용 안되게 --> <link type="text/css" rel="stylesheet" href="/resources/theme/style/2020/swiper.min.css?bust=20221228_01" class="css"> <link rel="stylesheet" href="/resources/theme/plugin/font-awesome-4.7.0/css/font-awesome.css"> <!-- 2019추가 --> <link rel="stylesheet" href="/resources/theme/style/2019/animate.css?bust=20221228_01"/> <link rel="stylesheet" href="/resources/theme/style/2019/content.css?bust=20241106"/> <link rel="stylesheet" href="/resources/theme/style/2019/layout.css?bust=20241025"/> <link rel="stylesheet" href="/resources/theme/style/content.css?dt=20231218_01"/> <link rel="stylesheet" href="/resources/theme/style/seoul_stay.css?bust=20230913_01"/> <!-- 서울스테이 --> <!-- 202009//(Ina)MALAY추가(s) --> <link type="text/css" rel="stylesheet" href="/resources/theme/style/malay/common.css?bust=20240829"> <link type="text/css" rel="stylesheet" href="/resources/theme/style/malay/sub.css?bust=20231218_01"> <!-- 2020 무슬림 추가 --> <script> var showText = 'Show content'; var hideText = 'hide content'; var alltext = 'Show all'; var lessText = 'Show less'; </script> <script src="/resources/theme/script/content.js?bust=20240808_1"></script> <link rel="stylesheet" href="/resources/theme/v2/style/common.css?bust=20241106"> <link rel="stylesheet" href="/resources/theme/v2/style/main.css?bust=20241010"> <link rel="stylesheet" href="/resources/theme/v2/style/content.css?bust=20241025_5"> <script src="/resources/theme/plugin/jquery.tmpl.js"></script> <!-- 2024-08-07 [해리] About Seoul js --> <!-- 2024-08-07 [해리] About Seoul js --> <!-- 2024-08-07 [해리] About Seoul css --> <script src="/resources/theme/v2/script/ui.js?bust=20240912"></script> <!--[if gte IE 9]> <style> .box-side-banner .item .mask { filter: none !important; } </style> <![endif]--> <script type="application/ld+json">{ "@context": "http://schema.org", "@type": "Organization", "name": "Visit Seoul", "url": "https://english.visitseoul.net", "logo": "https://korean.visitseoul.net/comm/getImage?srvcId=MEDIA&parentSn=49029&fileTy=MEDIA&fileNo=1", "sameAs": [ "https://www.instagram.com/visitseoul_official", "https://www.facebook.com/VisitSeoul", "https://www.youtube.com/c/VisitSeoulTV", "https://www.tiktok.com/@visitseoul" ] }</script> <script type="application/ld+json">{ "@context": "https://schema.org", "@type": "WebSite", "url": "https://english.visitseoul.net/", "potentialAction": { "@type": "SearchAction", "target": { "@type": "EntryPoint", "urlTemplate": "https://english.visitseoul.net/search?lang=en&searchTerm={search_term_string}" }, "query-input": "required name=search_term_string" } }</script> <!-- Facebook Pixel Code --> <script> !function (f, b, e, v, n, t, s) { if (f.fbq) return; n = f.fbq = function () { n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments) }; if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0'; n.queue = []; t = b.createElement(e); t.async = !0; t.src = v; s = b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t, s) }(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '281238195644628'); fbq('track', 'PageView'); </script> <!-- End Facebook Pixel Code --> <!-- 2023-05-23 GA 스크립트 추가 --> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-J3CHX30YSK"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-J3CHX30YSK'); </script> <!-- 대한항공 seoul festa 2023 이벤트 측정 GA ( 20230510 이벤트 종료하여 삭제 처리 )--> <!-- 2022-04-01 [해리] 바이두 검색엔진 SEO도구에서 웹사이트를 인증하기 위해 적용. ( kjksds ) --> <!-- 2022-04-01 [해리] 바이두 검색엔진 SEO도구에서 웹사이트를 인증하기 위해 적용.(여기까지) --> </head> <body class="sub"> <!-- Google Tag Manager (noscript) --> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-54S2FCJ" height="0" width="0" style="display:none;visibility:hidden"> </iframe> </noscript> <!-- End Google Tag Manager (noscript) --> <!-- 2022-04-01 [해리] 비짓서울 웹사이트 스크립트 수정 가이드에 따라 적용. ( kjksds ) --> <!-- Google Tag Manager (noscript) --> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MP7V6XN" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <!-- End Google Tag Manager (noscript) --> <!-- 2022-04-01 [해리] 비짓서울 웹사이트 스크립트 수정 가이드에 따라 적용.(여기까지) --> <!-- webtrends --> <noscript> </noscript> <!-- //webtrends --> <!-- 2020 웹접근성 --> <!-- 20211104//(Ina)본문 바로가기 링크 순서수정(s) --> <div id="accessibility"> <strong class="hd-element">Skip Navigation</strong> <ul> <li><a href="#container"><span>Skip to body</span></a></li> <li><a href="#navigation"><span>Go to the menu</span></a></li> </ul> </div> <!-- 20211104//(Ina)본문 바로가기 링크 순서수정(e) --> <div class="wrapper mainWrap main--renewal-2024 mainWrap "> <!-- start:header --> <!-- Matomo --> <script> let urlSplit = window.location.href.trim().substring(8, 10); // console.log("substring한 url 어권 데이터는: ", urlSplit); let _paq = window._paq = window._paq || []; /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ _paq.push(["setDocumentTitle", document.domain + "/" + document.title]); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { let u="https://analytics.visitseoul.net/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '8']); let websiteIdDuplicate; switch (urlSplit){ case "ko": websiteIdDuplicate = 1; break; case "en": websiteIdDuplicate = 2; break; case "ja": websiteIdDuplicate = 3; break; case "ch": websiteIdDuplicate = 4; break; case "tc": websiteIdDuplicate = 5; break; case "ru": websiteIdDuplicate = 6; break; case "ma": websiteIdDuplicate = 7; break; } _paq.push(['addTracker', u+'matomo.php', websiteIdDuplicate]); let d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script> <!-- End Matomo Code --> <!-- 20231106//(Ina)비짓서울 상단 공지배너 영역 추가(s) --> <div class="top-banner-area info" id="topBannerInfo" style="display:none;height:0px;"> <!-- <div class="top-banner-area info" id="topBannerInfo"> --> <div class="inner-cont"> <div class="top-banner"> <a class="btn-link" href="https://english.visitseoul.net/announcements/Notice-of-Visit-Seoul-Cloud-Migration-September-19-2024-Thu---October-02-2024-Wed/ENB013750?curPage=1" target="_self" title="Go to page"> <strong> Notice of Visit Seoul Cloud Migration (September 19, 2024 (Thu) - October 02, 2024 (Wed))</strong> </a> </div> <a class="btn-close" id="topBannerInfoClose" href="javascript:void(0);"> <i class="css-arrow-close"><em class="blind">close</em></i> </a> </div> </div> <!-- 20220809//(Ina)비짓서울 상단 공지배너 영역 추가(e) --> <!-- 20221122//(Ina)쿠키 수집 동의 팝업 영역 추가(s) --> <div class="cookie-popup-area" id="cookiePopup" style="display:none"> <div class="inner-cont"> <div class="text-cont"> <p>The Visit Seoul website uses cookies to enhance the user experience, improve the website, and more.</p> <p>Continuing use of this website means that you agree to the use of cookies.</p> </div> <div class="btn-block"> <a href="javascript:void(0);" class="btn-primary" id="btnCookieAgree"> <em>Accept All</em> </a> <a href="javascript:void(0);" id="btnCookieDisagree"> <em>Reject All</em> </a> <a href="https://www.sto.or.kr/english/privacy" target="_blank" title="open new window"> <em>Cookies Information</em> </a> </div> </div> </div> <!-- 20221122//(Ina)쿠키 수집 동의 팝업 영역 추가(e) --> <!-- 20211207//(Ina)탑배너 영역 추가(s) --> <div class="top-banner-area info-IE" style="display:none;"> <div class="inner-cont"> <div class="top-banner"> <i class="ico-exclamation-mark"></i><strong>Internet Explorer is no longer supported. We will switch you over to Edge for the best experience.</strong> </div> </div> </div> <!-- 20211207//(Ina)탑배너 영역 추가(e) --> <!----- 20211012//(Ina)공통 퀵메뉴 추가(s) -----> <!-- *운영서버 반영시 title속성 각 언어권 문구로 들어가야 합니다. .btn-quick-list 퀵메뉴 버튼 title속성 퀵메뉴 영역 열기/닫기 텍스트 동적으로 처리 필요합니다. --> <!-- 퀵메뉴 --> <input type="hidden" id="quick_menu_open" value="Open Quick Menu Area" /> <input type="hidden" id="quick_menu_close" value="Selected Close Quick Menu Area" /> <div class="quick-menu-cont" style=""> <button type="button" id="btn-quick-list-pc" class="btn-quick-list js-quick-list-btn" title="Open Quick Menu Area"> <em class="quick-menu-title">Quick Menu</em> <i class="ico-arrow"></i> </button> <ul class="quick-menu-list"> <li> <a class="div-cell" href="https://english.visitseoul.net/editorspicks" target="_self" title="Go to page"> <i class="ico-editorpick"></i> <em>Seoulite's Picks</em> </a> </li> <li> <a class="div-cell" href="https://english.visitseoul.net/exhibition-events#tabAll&selectedMonth=202411" target="_self" title="Go to page"> <i class="ico-exhibition"></i> <em>Exhibition/Festival/Events</em> </a> </li> <li> <a class="div-cell" href="https://english.visitseoul.net/safe-travel" target="_self" title="Go to page"> <i class="ico-smarttrip"></i> <em>Seoul Smart Travel</em></a> </li> <li> <div class="sns-area div-cell"> <div class="pos-cont"> <a href="https://www.facebook.com/VisitSeoul" target="_blank" title="Open new window for Visit Seoul Facebook page"> <i class="ico-fb"></i> <em class="blind">Facebook logo icon</em> </a> <a href="https://www.instagram.com/visitseoul_official/" target="_blank" title="Open new window for Visit Seoul Instagram page"> <i class="ico-instar"></i> <em class="blind">Instagram logo icon</em> </a> <a href="https://www.youtube.com/user/visitseoul" target="_blank" title="Open new window for Visit Seoul Youtube page"> <i class="ico-yt"></i> <em class="blind">YouTube logo icon</em> </a> <a href="https://www.tiktok.com/@visitseoul" target="_blank" title="Open new window for Visit Seoul TikTok page"> <i class="ico-tiktok"></i> <em class="blind">TikTok logo icon</em> </a> </div> </div> </li> </ul> </div> <!-- pc(s) --> <!-- 최상단으로 가기(s) --> <button type="button" class="btn-quick-top js-quick-top-btn" title="going to the top"> <em class="blind">Go to the top button</em> <i class="ico-arrow"></i> </button> <!-- 최상단으로 가기(e) --> <!-- pc(e) --> <!-- mobile(s) --> <!-- 최상단으로 가기(s) --> <!-- <i class="ico-arrow"></i> --> <!-- </button> --> <!-- 최상단으로 가기(e) --> <!-- 퀵메뉴 - 국/영/일/중 어권(s) --> <div class="quick-menu-cont--mobile" style=""> <div class="dim"></div> <button type="button" id="btn-quick-list-mobile" class="btn-quick-list js-quick-list-btn" title="Open Quick Menu Area"> <em class="blind">quick menu button</em> <i class="ico-arrow"></i> </button> <ul class="quick-menu-list" style=""> <li> <a href="https://english.visitseoul.net/editorspicks" target="_self" title="Go to page"> <div class="text-cont div-cell"> <em>Seoulite's Picks</em> </div> <div class="ico-cont div-cell"> <i class="ico-editorpick"></i> </div> </a> </li> <li> <a href="https://english.visitseoul.net/exhibition-events#tabAll&selectedMonth=202411" target="_self" title="Go to page"> <div class="text-cont div-cell"> <em>Exhibition/Festival/Events</em> </div> <div class="ico-cont div-cell"> <i class="ico-exhibition"></i> </div> </a> </li> <li> <a href="https://english.visitseoul.net/safe-travel" target="_self" title="Go to page"> <div class="text-cont div-cell"> <em>Seoul Smart Travel</em></div> <div class="ico-cont div-cell"> <i class="ico-smarttrip"></i> </div> </a> </li> </ul> </div> <!-- 퀵메뉴 - 국/영/일/중 어권(e) --> <!-- mobile(e) --> <!----- 20211012//(Ina)공통 퀵메뉴 추가(e) -----> <!-- header(s) --> <header class="sub" id="navigation"> <div class="main"> <!-- menu-wrap(s) --> <div class="menu-wrap js-menu-wrap--2024"> <div class="pull-left"> <h1> <a href="https://english.visitseoul.net"> <span class="hd-element">visitseoul.net</span> </a> </h1> </div> <div class="gnb"> <ul class="gnb-element"> <li> <a href="#none">Seoul Now<span class="line"></span><i class="ion-ios-arrow-down"></i></a> <div class="gnb-inner"> <div class="gnb-sub-title"> <p class="large-text">Seoul Now</p> <p class="small-text"> </p> </div> <ul class="depth-2"> <li> <a href="/exhibition-events">Exhibition/Festival/Events</a> </li> <li> <a href="/event">Visit Seoul Events</a> </li> <li> <a href="/realtime-seoul">Seoul Live Tourism Guide</a> </li> <li> <a href="/curation">My Seoul Curation</a> </li> <li> <a href="/archive">Seoul Tourism Archive</a> </li> </ul> </div> </li> <li> <a href="#none">Travel Themes<span class="line"></span><i class="ion-ios-arrow-down"></i></a> <div class="gnb-inner"> <div class="gnb-sub-title"> <p class="large-text">Travel Themes</p> <p class="small-text"> </p> </div> <ul class="depth-2"> <li> <a href="/editorspicks">Seoulites' Picks</a> </li> <li> <a href="/walking-tour">Seoul Guided Walking Tour</a> </li> <li> <a href="/seoul-hiking">Seoul Hiking Tourism</a> </li> <li> <a href="/hallyu">Hallyu</a> </li> <li> <a href="/mvp">Must Visit Places of Seoul</a> </li> </ul> </div> </li> <li> <a href="#none">Things to Do<span class="line"></span><i class="ion-ios-arrow-down"></i></a> <div class="gnb-inner"> <div class="gnb-sub-title"> <p class="large-text">Things to Do</p> <p class="small-text"> </p> </div> <ul class="depth-2"> <li> <a href="/attractions">Attractions</a> </li> <li> <a href="/nature">Nature</a> </li> <li> <a href="/entertainment">Entertainment</a> </li> <li> <a href="/shopping">Shopping</a> </li> <li> <a href="/restaurants">Restaurants</a> </li> <li> <a href="/area">Explore by Area</a> </li> </ul> </div> </li> <li> <a href="#none">Travel Information<span class="line"></span><i class="ion-ios-arrow-down"></i></a> <div class="gnb-inner"> <div class="gnb-sub-title"> <p class="large-text">Travel Information</p> <p class="small-text"> </p> </div> <ul class="depth-2"> <li> <a href="/AboutSeoul">About Seoul</a> </li> <li> <a href="/map-guide-book">Guidebooks & Maps</a> </li> <li> <a href="/safe-travel">Seoul Smart Travel</a> </li> <li> <a href="/Getting-to-seoul">Transportation</a> </li> <li> <a href="/Accommodation"> Accommodation</a> </li> <li> <a href="/Before-You-Go">Before You Go</a> </li> <li> <a href="/traveler-support">Traveler Assistance</a> </li> </ul> </div> </li> </ul> </div> <div class="pull-right"> <div class="weather-area"> <div class="weather-cont"> <!-- *날씨 아이콘 .ico-weather.cloudiness : 구름많음 .ico-weather.cloudy : 흐림 .ico-weather.littleRain : 약간 비 .ico-weather.sunny : 맑음 .ico-weather.storm : 뇌우 .ico-weather.rain : 비 .ico-weather.snow : 눈 --> <a href="/weather"> <div class="item"> <i class="ico-weather "><em class="blind ico-weather-blind">흐림</em></i> <span class="degree"></span> </div> </a> </div> </div> <div class="search-cont"> <a class="btn-search-open js-btn-search-open--2024" href="javascript:void(0);" title="Open the search area"> <span class="blind">Open the search area</span> </a> </div> <!-- 검색 영역 열기 --> <div class="mylike-cont"> <div class="mylike-element"> <button type="button" class="btn-mylike js-btn-mylike--2024" id="btnMylike"> <span class="blind">My Favorites</span> </button> </div> <!-- 202305//(Ina)툴팁영역 추가(s) --> <div class="mylike-open-area" id="mylikeOpenArea" style=""> <div class="title"> <h3>My Favorites</h3> <button type="button" class="btn-like-tooltip"> <i class="ico-info"> <em class="blind">My Favorites Tooltip Button</em> </i> </button> <!-- 20230725//(Ina)줄바꿈처리 수정(s) --> <div class="info-balloon"> <p> <span class="change-word-break">The Favorites function assists you so that you can save travel information you're interested in according to the region in Seoul. </span> <span class="change-word-break"></span> </p> </div> <!-- 20230725//(Ina)줄바꿈처리 수정(e) --> </div> <ul class="ulWishList-mobile"> </ul> <div class="btn-block"> <a href="/wishlist" class="btn-primary"> <span>Go to My Favorites</span> </a> </div> </div> </div> <div class="other-menu-cont js-other-menu-cont--2024"> <div class="other-menu-element"> <div class="lang-element"> <a class="btn-lang js-btn-lang--2024" href="#" title="Open language selection menu"> <div class="mo-view"> <span class="lang-text">English</span> <i class="ion-ios-arrow-down"></i> </div> <span class="lang-text blind">Multilanguage Open Link</span> </a> <ul class="lang-open-lst"> <li><a href="https://korean.visitseoul.net">한국어</a></li> <li><a href="https://english.visitseoul.net">English</a></li> <li><a href="https://japanese.visitseoul.net">日本語</a></li> <li><a href="https://chinese.visitseoul.net">简体中文</a></li> <li><a href="https://tchinese.visitseoul.net">繁體中文</a></li> <li><a href="https://russian.visitseoul.net">русскийязык<sup>beta</sup></a></li> <li><a href="https://malay.visitseoul.net">Malay<sup>beta</sup></a></li> </ul> </div> <input type="hidden" id="family_open_text" value="Open Family Site URL" /> <input type="hidden" id="family_close_text" value="Close Family Site URL" /> <input type="hidden" id="lang_open_text" value="Open language selection menu" /> <input type="hidden" id="lang_close_text" value="Close language selection menu" /> <div class="family-element"> <a href="javascript:void(0);" class="a_family js-btn-family--2024" title="Open Family Site URL"> <div class="mo-view"> <span class="lang-text">Affiliations</span> <i class="ion-ios-arrow-down"></i> </div> <span class="lang-text">Affiliations</span> </a> <ul class="lang-open-lst family-list"> <li><a href="http://www.miceseoul.com/index" target="_blank" title="Seoul Convention Bureau open new window">Seoul Convention Bureau</a></li> <li><a href="http://english.visitseoul.net/partners-en" target="_blank" title="Partners open new window">Partners</a></li> <li><a href="http://www.sto.or.kr" target="_blank" title="STO open new window">About STO</a></li> <li><a href="https://medical.visitseoul.net/en" target="_blank" title="Medical Tour open new window">Medical Tour</a></li> <li><a href="http://archive.visitseoul.net" target="_blank" title="SEOUL TOURISM ARCHIVE open new window">TOURISM ARCHIVE</a></li> <li><a href="https://www.discoverseoulpass.com/app/main" target="_blank" title="Discover Seoul Pass open new window">Discover Seoul Pass</a></li> <li><a href="https://stay.visitseoul.net/seoul-stay?lang=en" target="_blank" title="Seoul Stay open new window">Seoul Stay</a></li> <li><a href="https://www.seouldanurim.net/en/index" target="_blank" title="Accessible Seoul open new window">Accessible Seoul</a></li> </ul> </div> </div> </div> <!-- btn-menu-cont : tablet --> <div class="btn-menu-cont"> <a class="btn-menu js-btn-menu--tablet--2024" href="#" title="전체보기메뉴 열기"> <span class="blind">Open the entire view menu button</span> </a> </div> </div> <div class="search-area"> <form id="searchFrm" name="searchFrm" method="get" action="/search"> <div class="search-element"> <a class="btn-search-area-close js-btn-search-area-close--2024" href="javascript:void(0);" title="검색영역 닫기"> <span class="blind">검색영역 닫기버튼</span> </a> <div class="search-element-inner"> <input type="hidden" id="lang1" value="en" name="lang"/> <div class="input-field"> <label for="search_name" class="hd-element">Open the search area</label> <input type="text" id="search_name" name="searchTerm" autocomplete="off" title="Please enter a search term" placeholder="Please enter a search term" /> <button type="button" class="input-search_clear"><em class="blind">Delete a search term</em></button> <button type="button" class="btn-search" onclick="javascript:goSearch();"> <span class="blind">run search</span> </button> </div> <div class="search-open-area" id="searchOpenArea" style=""> <div class="search-list "> <h3>Search rankings</h3> <div class="search-list-box"> <ul class="uiSearchRankingCol1"> </ul> <ul class="uiSearchRankingCol2"> </ul> </div> </div> </div> </div> </div> </form> </div> </div> <!-- menu-wrap(e) --> <!-- menu-wrap--mobile(s) --> <div class="menu-wrap--mobile"> <div class="menu-wrap--mobile__header"> <div class="inner-cont"> <div class="menu-area"> <div class="btn-menu-cont"> <a class="btn-menu js-btn-menu--mobile--2024" href="#" title="전체보기메뉴 열기"> <span class="hd-element">전체보기메뉴 열기버튼</span> </a> </div> </div> <div class="logo-area"> <h2> <a href="https://english.visitseoul.net"> <span class="hd-element">visitseoul.net</span> </a> </h2> </div> <div class="info-area"> <div class="search-cont"> <div class="btn-search-cont"> <button type="button" class="btn-search btn-search--mobile--2024"><span class="hd-element">Search</span></button> </div> <div class="search-open-area" id="searchOpenAreaMobile"> <div class="input-field"> <label for="search_nameMobile" class="hd-element">Search area</label> <input type="text" id="search_nameMobile" name="searchTerm" title="Please enter your search term" autocomplete="off" placeholder="Keyword"> <button type="button" class="input-search_clear" style="display: none;"><em class="blind">Close</em></button> <button type="button" class="btn-search" onclick="javascript:goSearchMobile();"><span class="hd-element">run search</span></button> </div> <div class="search-list"> <h3>Search rankings</h3> <div class="search-list-box"> <ul class="uiSearchRankingCol1"> </ul> <ul class="uiSearchRankingCol2"> </ul> </div> </div> </div> </div> <!-- 202305//(Ina)모바일헤더 찜하기 영역 추가(s) --> <div class="mylike-cont"> <div class="mylike-element"> <button type="button" class="btn-mylike btn-mylike--mobile--2024" id="btnMylikeM"> <span id="spanOpenMyFavM" class="blind">My Favorites</span></button> </div> <!-- 202305//(Ina)툴팁영역 추가(s) --> <div class="mylike-open-area" id="mylikeOpenAreaM"> <div class="title"> <h3>My Favorites</h3> <button id="btnTooltipM" type="button" class="btn-like-tooltip"><i class="ico-info"><em id="spanHdElementM" class="blind">My Favorites Tooltip Button</em></i></button> <!-- 20230725//(Ina)줄바꿈처리 수정(s) --> <div id="divInfoBalloonM" class="info-balloon"> <p> <span class="change-word-break">The Favorites function assists you so that you can save travel information you're interested in according to the region in Seoul. </span> <span class="change-word-break"></span> </p> </div> <!-- 20230725//(Ina)줄바꿈처리 수정(e) --> </div> <ul class="ulWishList-mobile"> </ul> <div class="btn-block"> <a href="/wishlist" class="btn-primary"> <span>Go to My Favorites</span> </a> </div> </div> <!-- 202305//(Ina)툴팁영역 추가(e) --> </div> <!-- 202305//(Ina)모바일헤더 찜하기 영역 추가(e) --> </div> </div> </div> <nav class="menu-wrap--mobile__nav"> <div class="mb_menu_wrap js-mb_menu_wrap"> <div class="mb_menu_wrap_inner"> <div class="mb_menu_title"> <h2> <a href="https://english.visitseoul.net" title="visitseoul.net"> <span class="hd-element">visitseoul.net</span> </a> </h2> <div class="mb_cross_btn"> <a class="js-btn-cross-btn--mobile" href="javascript:void(0);" title="Close the entire view menu."> <em class="blind">Close the entire view menu button</em> </a> </div> </div> <!--모바일 메뉴복제부분--> <div class="mb_clone-area"> <div class="mb_weather_wrap"></div> <div class="mb_other_wrap"></div> <div class="mb_gnb_wrap"></div> </div> </div> </div> </nav> </div> <!-- menu-wrap--mobile(e) --> </div> </header> <!-- header(e) --> <script> function setCookie(name, value, exp) { var date = new Date(); date.setTime(date.getTime() + exp*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + date.toUTCString() + ';path=/'; }; function getCookie(name) { var value = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)'); return value? value[2] : null; }; function goSearch() { if(!$('#search_name').val()) { return; } $('#searchFrm').submit(); } function goSearchMobile() { if(!$('#search_nameMobile').val()) { return; } $('#search_name').val($('#search_nameMobile').val()); $('#searchFrm').submit(); } function getKweather() { $.ajax({ type : "post", url: '/comm/kweather/currentWeather2.json', dataType: 'json', contentType: 'application/x-www-form-urlencoded; charset=UTF-8', success: function(data) { var resultToday = data.applyDate_YYYY + "." + data.applyDate_MM + "." + data.applyDate_DD; var resultTemp = data.temp+"<em>C</em>"; switch(data.icon) { case '1': $('.ico-weather').addClass('sunny'); $('.ico-weather-blind').text('Sunny'); break; case '2': case '3': $('.ico-weather').addClass('cloudy'); $('.ico-weather-blind').text('Cloudy'); break; case '5': case '6': $('.ico-weather').addClass('cloudy'); $('.ico-weather-blind').text('Cloudy'); break; case '4': $('.ico-weather').addClass('cloudy'); $('.ico-weather-blind').text('Cloudy'); break; case '7': case '8': case '9': $('.ico-weather').addClass('storm'); $('.ico-weather-blind').text('Storm'); break; case '10': case '11': case '12': case '13': case '14': case '15': case '16': case '17': $('.ico-weather').addClass('littleRain'); $('.ico-weather-blind').text('Little Rain'); break; case '18': case '19': case '20': case '21': case '22': case '23': case '24': case '25': case '26': case '27': case '28': case '29': case '30': case '31': case '32': case '33': case '34': case '35': case '36': case '37': case '38': $('.ico-weather').addClass('snow'); $('.ico-weather-blind').text('Snow'); break; case '39': case '40': $('.ico-weather').addClass('cloudy'); $('.ico-weather-blind').text('Cloudy'); break; default : } $(".weather-cont .degree").html(resultTemp); }, error: function(data, status, err) { console.log('error forward : ' + data); } }); } function getSearchRankings() { $.ajax({ type : "post", url: '/comm/api/search/rankings/en', dataType: 'json', success: function(data) { let result = data.result; if(result.code == 0){ var col1html = ''; var col2html = ''; $.each(result.rankings, function(i, item){ if(i<5) { col1html += '<li>'; col1html += ' <span class="num">'+(i+1)+'</span>'; col1html += ' <a href="/search?currentPage=1&search_radio=K&searchTerm='+item.KEYWORD+'&searchTy=&ctgrySn=&tursmAreaCode=">'+item.KEYWORD+'</a>' col1html += '</li>\n'; }else{ col2html += '<li>'; col2html += ' <span class="num">'+(i+1)+'</span>'; col2html += ' <a href="/search?currentPage=1&search_radio=K&searchTerm='+item.KEYWORD+'&searchTy=&ctgrySn=&tursmAreaCode=">'+item.KEYWORD+'</a>' col2html += '</li>\n'; } }); $('.uiSearchRankingCol1').html(col1html); $('.uiSearchRankingCol2').html(col2html); } }, error: function(data, status, err) { console.log('error forward : ' + data); } }); } $(document).ready(function() { getKweather(); //쿠키 모두 허용 $('#btnCookieAgree').on('click', function(e) { e.preventDefault(); setCookie('cookie-agree','Y',365); $('#cookiePopup').fadeOut('fast'); }); //쿠키 모두 거부 $('#btnCookieDisagree').on('click', function(e) { e.preventDefault(); setCookie('cookie-agree','N',1); $('#cookiePopup').fadeOut('fast'); }); try { if(getCookie('cookie-agree') != 'Y') { $('#cookiePopup').fadeIn('fast'); } } catch (err) { console.log('error header : ' + err); } $('#btnMylike').click(function(){ var langCodeId = 'en'; if(langCodeId === "zh-CN" || langCodeId === "zh-TW"){ langCodeId = langCodeId.replace("-", "_"); } if($('#mylikeCont').hasClass('active')) { $('#mylikeCont').removeClass('active'); $('.hd-element-favpopup').text('My Favorites'); }else{ getLastData(langCodeId, 5, function(result){ var html = ''; $.each(result, function(index, item){ html += '<li><a href="'+item.linkUrl+'">'+item.postSj+'</a></li>\n'; }); $('#ulWishList').html(html); $('.ulWishList-mobile').html(html); }); $('#mylikeCont').addClass('active'); } // if($('.mylike-cont-pc').hasClass('active')) { // getLastData('en', 5, function(result){ // var html = ''; // $.each(result, function(index, item){ // html += '<li><a href="'+item.linkUrl+'">'+item.postSj+'</a></li>\n'; // }); // $('#ulWishList').html(html); // $('#ulWishList-mobile').html(html); // }); // $('.hd-element-favpopup').text('Close my favorites'); // }else{ // $('.hd-element-favpopup').text('My Favorites'); // } }); $('#btnMylikeM').click(function(){ var langCodeId = 'en'; if(langCodeId === "zh-CN" || langCodeId === "zh-TW"){ langCodeId = langCodeId.replace("-", "_"); } if($('#mylikeContM').hasClass('active')) { // getLastData('en', 5, function(result){ // var html = ''; // $.each(result, function(index, item){ // html += '<li><a href="'+item.linkUrl+'">'+item.postSj+'</a></li>\n'; // }); // $('#ulWishList').html(html); // $('#ulWishList-mobile').html(html); // }); // $('.hd-element-favpopup').text('Close my favorites'); $('#mylikeContM').removeClass('active'); $('.hd-element-favpopup').text('My Favorites'); }else{ getLastData(langCodeId, 5, function(result){ var html = ''; $.each(result, function(index, item){ html += '<li><a href="'+item.linkUrl+'">'+item.postSj+'</a></li>\n'; }); $('#ulWishList').html(html); $('#ulWishList-mobile').html(html); }); $('.hd-element-favpopup').text('Close my favorites'); $('#mylikeContM').addClass('active'); // $('.hd-element-favpopup').text('My Favorites'); } }); $('.btn-like-tooltip').click(function(){ if($('#divInfoBalloon').hasClass('active')) { $('#btnTooltip').attr('title', 'Close my favorites Tooltip'); }else{ $('#btnTooltip').attr('title', 'Open my favorites Tooltip'); } if($('#divInfoBalloonM').hasClass('active')) { $('#btnTooltipM').attr('title', 'Close my favorites Tooltip'); }else{ $('#btnTooltipM').attr('title', 'Open my favorites Tooltip'); } }); $('#btn-quick-list-mobile').click(function(){ $(this).attr('title', $('#quick_menu_close').val()); }); $('.dim').click(function(){ $('#btn-quick-list-mobile').attr('title', $('#quick_menu_open').val()); }) getSearchRankings(); }); //어짜피 서버에서 조회 하지 않으므로 화면 로드 되면 저장된 찜하기 목로을 모두 가져온다.(페이징 처리를 위해 전체 카운트 세팅.) </script> <!-- end:header --> <main class="sub-contents "> <!-- start:content --> <script> var listData = {}; </script> <!-- 행사형 --> <script type="text/javascript"> function btnSumit(){ $("#srchType").val('srchSj'); $('#postSearchFrm').submit(); } function btnReset(){ $("#simpleCalendarStartDate").val(''); $("#simpleCalendarEndDate").val(''); } function ctrySumit( val ){ $("#srchCtgry").val(val); $('#postSearchFrm').submit(); } function tourAreaSumit( val ){ $("#srchOptnCode").val(val); $('#postSearchFrm').submit(); } function schdulSumit( val ){ $("#srchSchdul").val(val); $('#postSearchFrm').submit(); } </script> <script src="/resources/theme/plugin/jquery.tmpl.js"></script> <!-- sub-visual-element --> <div class="sub-visual-element"> <div class="sub-visual-title"> <div class="large-text" > <!-- todo : s-tcep 항목에 대한 예외처리로 강제로 넣어 놓음!! 개선 필요함! --> <span class="large-text-inner">Visit Seoul Events</span> </div> </div> <!-- todo : s-tcep 항목에 대한 예외처리로 강제로 넣어 놓음!! 개선 필요함! --> <div class="sub-visual-bg" style="background-image:url(/comm/getImage?srvcId=KVSL&parentSn=2479&fileTy=&fileNo=2)"></div> </div><!--// sub-visual-element --> <!-- header --> <!-- sub-contents-inner --> <!-- 2024-07-24 메뉴 타입이 다른 관계로 ( 리스트형, 프로그램 ) location영역이 중복 표시 되는 문제로 통합메뉴에서는 제외 시킴.(하단에 close 태그에도 제외처리 --> <div class="sub-contents-inner wide course" id="container"> <div class="wide-inner"> <div class="loction"> <span class="ar">></span> Seoul Now<span class="ar">></span> <span> <a href="/event" title="Go to page" >Visit Seoul Events</a> </span> </div> <!-- location --> </div> <!-- sort-element --> <!-- 검색조건 form --> <form id="postSearchFrm" name="postSearchFrm" method="get" action="/event" onsubmit="preSumbit();"> <input type="hidden" name="srchType" id="srchType" value=""> <input type="hidden" name="srchOptnCode" id="srchOptnCode" value=""/> <input type="hidden" name="srchCtgry" id="srchCtgry" value=""/> <input type="hidden" name="sortOrder" id="sortOrder" value=""/> <input type="hidden" name="srchSchdul" id="srchSchdul" value=""/> <section class="article-list-element"> <!-- 2024.06.10 숨김처리. --> <!-- sort --> <div class="sort-element"> <div class="float-left"> <ul class="sort-menu"> <li class="active" > <a href="#" onclick="schdulSumit(''); return false;" title="Selected List Item"> Ongoing</a> </li> <li > <a href="#" onclick="schdulSumit('U'); return false;" >Upcoming</a> </li> <li > <a href="#" onclick="schdulSumit('C'); return false;" >Ended</a> </li> </ul> </div> <div class="float-right"> <!-- 20240627//(Ina)웹접근성 : 기간설정 영역 달력 simpleCalendar 라이브러리로 수정(s) --> <div class="select-btn-element" id="selectBtnElDate"> <input type="hidden" id="date_open_text" value="Open the Search Period menu" /> <input type="hidden" id="date_close_text" value="Close the selected Period Search menu" /> <input type="hidden" id="keyword_open_text" value="Open the Keyword menu" /> <input type="hidden" id="keyword_close_text" value="Close the selected Keyword Search menu" /> <input type="hidden" id="list_sel_msg" value="Selected List Item Go to page" /> <input type="hidden" id="page_msg" value="Go to page" /> <!-- 20240627//(Ina)웹접근성 : 검색조건 영역 달력 동적 대체텍스트 추가(s) --> <input type="hidden" id="startDate_open_text" value="Open the PeriodSearch start date calendar" /> <input type="hidden" id="startDate_close_text" value="Selected PeriodSearch start date Close the calendar" /> <input type="hidden" id="endDate_open_text" value="Open the PeriodSearch end date Calendar" /> <input type="hidden" id="endDate_close_text" value="Selected PeriodSearch end date Close calendar" /> <!-- 20240627//(Ina)웹접근성 : 검색조건 영역 달력 동적 대체텍스트 추가(e) --> <a href="#" class="btn-date" title="Open the Search Period menu"><span></span>Search by time period</a> <div class="search-layer" style="display:none"> <div class="search-layer-inner"> <div class="date-select-element"> <div class="date-select-inner"> <div class="date-select-cont"> <div class="input-field js-simpleCalendarStartDateField"> <label for="simpleCalendarStartDate" class="hd-element">Select a start date</label> <input type="text" id="simpleCalendarStartDate" name="srchBgnDe" value="" placeholder="Year-Month-Day" readonly title="Open the PeriodSearch start date calendar"> </div> <div class="calendar-cont js-simple-calendar-startDate-cont" style="display: none;"> <div class="inner-cont"> <div class="cont-head"> <strong>PeriodSearch start date</strong> </div> <div class="cont-body"> <div class="simple-calendar js-simple-calendar-startDate"></div> </div> </div> </div> </div> <span class="space">~</span> <div class="date-select-cont"> <div class="input-field js-simpleCalendarEndDateField"> <label for="simpleCalendarEndDate" class="hd-element">Select an end date</label> <input type="text" id="simpleCalendarEndDate" name="srchEndDe" value="" placeholder="Year-Month-Day" readonly title="Open the PeriodSearch end date Calendar"> </div> <div class="calendar-cont js-simple-calendar-endDate-cont" style="display: none;"> <div class="inner-cont"> <div class="cont-head"> <strong>PeriodSearch end date</strong> </div> <div class="cont-body"> <div class="simple-calendar js-simple-calendar-endDate"></div> </div> </div> </div> </div> </div> <button type="button" onclick="javascript:btnSumit();">Search</button> <button type="button" onclick="javascript:btnReset();">Reset</button> </div> </div> </div> <script> $(function() { // ------------------------------------------------------------ // selectBtnElDate : 기간설정 영역 // ------------------------------------------------------------ /* 초기 설정 */ // ------------------------------------------------------------ var $selectBtnElDate = $('#selectBtnElDate'); // 기간설정 영역 var startDateOpenText = $selectBtnElDate.find('#startDate_open_text').val(); var startDateCloseText = $selectBtnElDate.find('#startDate_close_text').val(); var endDateOpenText = $selectBtnElDate.find('#endDate_open_text').val(); var endDateCloseText = $selectBtnElDate.find('#endDate_close_text').val(); // 시작일 및 종료일 달력 초기화 initSimpleCalendar($selectBtnElDate.find('.js-simple-calendar-startDate'), $selectBtnElDate.find('#simpleCalendarStartDate'), $selectBtnElDate.find('.js-simple-calendar-startDate-cont'), function(date, events) { var formattedDate = formatDateToYYYYMMDD(date); $selectBtnElDate.find('#simpleCalendarStartDate').val(formattedDate); $selectBtnElDate.find('.js-simple-calendar-startDate-cont').hide(); setTitleAttribute($selectBtnElDate.find('#simpleCalendarStartDate'), false, startDateOpenText, startDateCloseText); }); initSimpleCalendar($selectBtnElDate.find('.js-simple-calendar-endDate'), $selectBtnElDate.find('#simpleCalendarEndDate'), $selectBtnElDate.find('.js-simple-calendar-endDate-cont'), function(date, events) { var formattedDate = formatDateToYYYYMMDD(date); $selectBtnElDate.find('#simpleCalendarEndDate').val(formattedDate); $selectBtnElDate.find('.js-simple-calendar-endDate-cont').hide(); setTitleAttribute($selectBtnElDate.find('#simpleCalendarEndDate'), false, endDateOpenText, endDateCloseText); }); // 시작일 및 종료일 달력 토글 이벤트 핸들러 설정 handleCalendarToggle($selectBtnElDate.find('#simpleCalendarStartDate'), $selectBtnElDate.find('.js-simple-calendar-startDate-cont'), startDateOpenText, startDateCloseText); handleCalendarToggle($selectBtnElDate.find('#simpleCalendarEndDate'), $selectBtnElDate.find('.js-simple-calendar-endDate-cont'), endDateOpenText, endDateCloseText); /* 이벤트 핸들러 함수 */ // ------------------------------------------------------------ // 달력 토글 이벤트 핸들러 function handleCalendarToggle($field, $cont, openText, closeText) { $field.on('click', function() { toggleCalendar($field, $cont, openText, closeText); }); $field.on('keydown', function(e) { if (e.key === 'Enter') { toggleCalendar($field, $cont, openText, closeText); } }); $field.on('focusout', function(e) { if (!$(e.relatedTarget).closest('.calendar-cont').length) { $cont.hide(); setTitleAttribute($field, false, openText, closeText); } }); $cont.on('focusout', function(e) { if (!$(e.relatedTarget).closest('.calendar-cont').length && !$(e.relatedTarget).is($field)) { $cont.hide(); setTitleAttribute($field, false, openText, closeText); } }); } /* 기능 함수 */ // ------------------------------------------------------------ // title 속성을 설정 function setTitleAttribute($field, isCalendarVisible, openText, closeText) { if (isCalendarVisible) { $field.attr('title', closeText); } else { $field.attr('title', openText); } } // 달력의 가시성을 토글하고 title 속성을 업데이트 function toggleCalendar($field, $cont, openText, closeText) { $selectBtnElDate.find('.calendar-cont').not($cont).hide(); // 다른 모든 달력을 숨김 $cont.toggle(); setTitleAttribute($field, $cont.is(':visible'), openText, closeText); } /* simpleCalendarDate : simpleCalendar 기간설정 달력 */ // ------------------------------------------------------------ function initSimpleCalendar($calendar, $inputField, $calendarCont, onDateSelect) { $calendar.simpleCalendar({ months: ['01','02','03','04','05','06','07','08','09','10','11','12'], days: ['sunday','monday','tuesday','wednesday','thursday','friday','saturday'], displayYear: true, // 헤더에 연도를 표시 fixedStartDay: 0, // 주의 시작 요일을 고정 displayEvent: true, // 기존 이벤트를 표시 disableEventDetails: true, // 이벤트 세부 정보를 비활성화 disableEmptyDetails: true, // 빈 날짜 세부 정보를 비활성화 events: [], onInit: function(calendar) { // 초기화 후 호출되는 콜백 setSimpleCalendarHeader($calendar); setSimpleCalendarDateDayEvent($calendar, $calendarCont); }, onMonthChange: function(month, year) { // 월 변경 시 호출되는 콜백 setSimpleCalendarHeader($calendar); setSimpleCalendarDateDayEvent($calendar, $calendarCont); }, onDateSelect: onDateSelect, onEventSelect: function() { $(this).data('event'); }, onEventCreate: function($el) {}, onDayCreate: function($el, d, m, y) {} }); } // 달력 헤더 설정 function setSimpleCalendarHeader($calendar) { $calendar.find('header .year').append('. '); $calendar.find('header .btn-prev').append('<em class="blind">Previous view</em>'); $calendar.find('header .btn-next').append('<em class="blind">Next view</em>'); $calendar.find('table').prepend('<caption>Calendar</caption>'); $calendar.find('table thead th:eq(0)').addClass('c-sunday'); $calendar.find('table tbody tr').each(function() { $(this).find('td:eq(0)').addClass('c-sunday'); }); } // 달력의 날짜 이벤트 설정 function setSimpleCalendarDateDayEvent($calendar, $calendarCont) { var $day = $calendar.find('.day'); $day.each(function(idx, item) { $(item).find('button').off('click').on('click', function() { onClickDayEvent(this, $calendarCont); }); }); } // 날짜 클릭 이벤트 처리 function onClickDayEvent(e, $calendarCont) { $calendarCont.find('button').removeClass('active--focus'); $(e).addClass('active--focus'); } // 날짜를 YYYY-MM-DD 형식으로 포맷 function formatDateToYYYYMMDD(date) { var year = date.getFullYear(); var month = (date.getMonth() + 1).toString().padStart(2, '0'); var day = date.getDate().toString().padStart(2, '0'); return year + '-' + month + '-' + day; } }); </script> </div> <!-- 20240627//(Ina)웹접근성 : 기간설정 영역 달력 simpleCalendar 라이브러리로 수정(e) --> <div class="select-btn-element"> <a href="#" class="btn-keyword" title="Open keyword search menu"><span></span>Search Keyword</a> <div class="search-layer"> <div class="search-layer-inner"> <div class="keyword-select-element"> <label for="keyword_text" class="hd-element">Search keyword</label> <input type="text" id="keyword_text" name="srchWord" value="" placeholder="Search keyword"> <button type="button" onclick="javascript:btnSumit();">Search</button> </div> </div> </div> </div> </div> </div><!--// sort --> <!-- 20230614//(Ina)나의찜하기 팝업 수정(s) --> <!-- 202305//(Ina)나의찜하기 팝업 추가(s) --> <div class="like-popup-area" id="likePopup" data-like-num=""> <input type="hidden" id="iptPopupCid" value="" /> <div class="dim--transparent js-popup-close"></div> <div class="popup-wrap" style=""> <div class="popup-cont"> <div class="popup-title"> <h3>Select a region!</h3> <p> Save travel information you're interested in according to the region to view in your favorites list later on.</p> <em>※ The actual region of the content is selected.</em> </div> <div class="popup-body"> <div class="body-cont"> <div class="radio-wrap"> <div class="radio-cont"> <input type="radio" name="radioOptionLike" id="radioOption1-1" value="TURSM_AREA_2" > <label for="radioOption1-1"><span>Gwanghwamun</span></label> </div> <div class="radio-cont"> <input type="radio" name="radioOptionLike" id="radioOption1-2" value="TURSM_AREA_1" > <label for="radioOption1-2"><span>Myeongdong</span></label> </div> <div class="radio-cont"> <input type="radio" name="radioOptionLike" id="radioOption1-3" value="TURSM_AREA_3" > <label for="radioOption1-3"><span>Dongdaemun</span></label> </div> <div class="radio-cont"> <input type="radio" name="radioOptionLike" id="radioOption1-4" value="TURSM_AREA_4" > <label for="radioOption1-4"><span>Hongdae</span></label> </div> <div class="radio-cont"> <input type="radio" name="radioOptionLike" id="radioOption1-5" value="TURSM_AREA_5" > <label for="radioOption1-5"><span>Yeouido</span></label> </div> <div class="radio-cont"> <input type="radio" name="radioOptionLike" id="radioOption1-6" value="TURSM_AREA_9" > <label for="radioOption1-6"><span>Itaewon</span></label> </div> <div class="radio-cont"> <input type="radio" name="radioOptionLike" id="radioOption1-7" value="TURSM_AREA_6" > <label for="radioOption1-7"><span>Gangnam</span></label> </div> <div class="radio-cont"> <input type="radio" name="radioOptionLike" id="radioOption1-8" value="TURSM_AREA_7" > <label for="radioOption1-8"><span>Jamsil</span></label> </div> <div class="radio-cont"> <input type="radio" name="radioOptionLike" id="radioOption1-9" value="TURSM_AREA_8" checked > <label for="radioOption1-9"><span>Other Areas</span></label> </div> </div> </div> </div> <div class="btn-block"> <a href="javascript:void(0);" class="btn-primary" id="btnLikeSave"> <span>Save</span> </a> </div> <!-- 20231006//(Ina)웹접근성 나의찜하기 팝업 닫기버튼 순서 변경(s) --> <button type="button" class="btn-close js-popup-close"> <i class="ico-close"><em class="blind">Close my favorites</em></i> </button> <!-- 20231006//(Ina)웹접근성 나의찜하기 팝업 닫기버튼 순서 변경(e) --> </div> </div> </div> <!-- 202305//(Ina)나의찜하기 팝업 추가(e) --> <!-- share --> <!-- 20230614//(Ina)나의찜하기 팝업 수정(e) --> <!-- 2024-07-24 콘텐츠 자체는 원래의 카테고리가 연결된 메뉴 uri로 링크가 되어야 하므로, 통합된(exhibition-events) 메뉴 uri로는 조회 불가 하여 db에서 가져온 menuUri로 설정함 --> <div class="article-list-slide"> <ul class="article-list"> <li class="item"> <!-- 2020 웹접근성 --> <a href="/event/2024-survey-en/ENN0zyh2f" target="_self" title="Go to page"> <div class="thumb" style="background-image:url(/data/MEDIA/20241115/1115155937344-9c16598c77154616afb991aad2e83d02.jpg)"> <img src="/data/MEDIA/20241115/1115155937344-9c16598c77154616afb991aad2e83d02.jpg" alt="2024 Visit Seoul Website User Satisfaction Survey"/> </div> <div class="infor-element"> <div class="infor-element-inner"> <span class="title">2024 Visit Seoul Website User Satisfaction Survey</span> <span class="small-text text-dot-d"> <!-- 2023-06-01 BTS이벤트만 미리 노출 하기 위해 하드 코딩 함. 6/18이후 choose부분은 삭제 하고 원래대로 시작-종료 일자 표시. --> Nov 18, 2024 ~ Dec 02, 2024</span> </div> </div> </a> <!-- 20240805 메뉴에 따라 tip 텍스트 분기처리, exhibition-events은 진행중과 진행예정 통합 --> <!-- 20231004 512이미지 a태그 밖으로 이동.s --> <span class="tip-text blue"> Ongoing</span> <!-- 20231004 진행중이미지 a태그 밖으로 이동.e --> <!-- 202305//(Ina)찜하기 영역 추가(s) --> <div class="like-cont" id="ENN0zyh2f"> <div class="like-element"> <button id="btnLikeENN0zyh2f" type="button" class="btn-like" data-cid="ENN0zyh2f" data-area="" data-like-num="1" data-like-active="false"><em class="blind">찜하기</em></button> </div> </div> <!-- 202305//(Ina)찜하기 영역 추가(e) --> </li> <script> listData.ENN0zyh2f = { cid : 'ENN0zyh2f' , postSn : '47584', postSj : '2024 Visit Seoul Website User Satisfaction Survey', type : 'E', fdHsAt : '', halal : '', stcepAt : '', startDt : '2024-11-18' , endDt : '2024-12-02' , ctgrySn : '939' , ctgryNm : 'Visit Seoul Events' , linkUrl : location.protocol + '//' + location.host + '//event/2024-survey-en/ENN0zyh2f' , thumbUrl : location.protocol + '//' + location.host + '/data/MEDIA/20241115/1115155937344-9c16598c77154616afb991aad2e83d02.jpg', sumry : '', langCodeId : 'en' }; </script> </ul> </div> <!-- paging --> <div class="paging-lst"><a href="?curPage=1" class="on" title="Current Page">1</a></div> </section> </form> </div> <!--// sub-contents-inner --> <script id="eventListTmpl" type="text/x-jquery-tmpl" > {{if eventList.length > 0}} <ul> {{each eventList}} <li> <span class="title"> {{if postUri.startsWith('/events') }} <a href="${postUri}" title="Go to Event Details"> <i class="bullet--eventCal2"><em class="blind">Festivals & EventsSchedule</em></i> ${postSj}</a> {{/if}} {{if postUri.startsWith('/exhibition') }} <a href="${postUri}" title="Go to Event Details"> <i class="bullet--eventCal3"><em class="blind">Exhibitions&HallyuSchedule</em></i> ${postSj}</a> {{/if}} </span> <span class="date">${schdulInfoBgnde} ~ ${schdulInfoEndde}</span> </li> {{/each}} </ul> {{else}} <div class="nodata-cont"> <dl> <dt><i class="ico-nodata"></i></dt> <dd>There are no registered events on that date.</dd> </dl> </div> {{/if}} </script> <script> var isProcess = false; var currentMonth = ''; var currentTab = ''; var currentDay = ''; const options = { day: 'numeric', // 날도 숫자로 month: 'short', // 달은 글자로 year: 'numeric', // 연도는 숫자로 weekday: 'short', // 요일은 글자로 }; String.prototype.format = function(opt) { var formatted = this; const ymd = new Date(this); if(opt == 'weekday') { formatted = new Intl.DateTimeFormat('en', {weekday: 'short'}).format(ymd); }else{ formatted = new Intl.DateTimeFormat('en', options).format(ymd); } return formatted; }; var $eventCalArea = $('.section-event-calendar'); var $eventCalTabBtn = $eventCalArea.find('.js-tab-btn'); //공휴일정보 api key (http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getRestDeInfo?solYear=년도(4자리)&solMonth=월(두자리)&ServiceKey=서비스키&_type=json) var apiKey = 'rUCqc3pzhad%2Fdp2REn2cTzN5mNYHsSdmwLuJJvsHM7i1oKEuyMoVqVPB8HWyEcXk5rwhN6ZGO9YmxySGQo8nhA%3D%3D'; //jquery simple calendar 정의 var _simpleCalendar; function setSimpleCalendarHeaderYear() { /* 20230920//(Ina)웹접근성 setSimpleCalendarHeader() 분리 */ $("#simpleCalendar").find('header .year').append('. '); } function setSimpleCalendarTableCaption() { /* 20230920//(Ina)웹접근성 setSimpleCalendarTableCaption() 추가 */ $("#simpleCalendar").find('table').prepend('<caption>ScheduleCalendar : All, Festivals & Events, Exhibitions&Hallyu</caption>'); } //캘린더 헤어 부분 정의 function setSimpleCalendarHeaderBtnText() { /* 20230920//(Ina)웹접근성 setSimpleCalendarHeader() 분리 */ $("#simpleCalendar").find('header .btn-prev').empty().append("<em class='blind'>Previous month's event inquiry</em>"); $("#simpleCalendar").find('header .btn-next').empty().append("<em class='blind'>Next month's event inquiry</em>"); $('.event-container').remove(); } //캘린더 일요일 function setSimpleCalendarSundayColor() { // $("#simpleCalendar").find('table thead td:eq(0)').addClass('c-sunday'); // $("#simpleCalendar").find('tbody tr').each(function(idx, item) { // $(item).find('td:eq(0)').addClass('c-sunday'); // }); /* thead */ $("#simpleCalendar").find('table thead th:eq(0)').addClass('c-sunday'); /* tbody */ $("#simpleCalendar").find('table tbody tr').each(function(idx, item) { $(item).find('td:eq(0)').addClass('c-sunday'); }); } /* * setSimpleCalendarDayEvent * * 캘린더의 년월에 포함된 이벤트 일자를 가져온다. * 캘린더의 일자에 이벤트 일자가 포함되었는지 체크 해서 그에 맞게 style을 적용. */ function setSimpleCalendarDayEvent(year, month) { getHoliday(year, month); var type = 'All'; if($('#liAllTab').hasClass('active')) { type = 'All'; }else if($('#liEventsTab').hasClass('active')) { type = 'events'; }else if($('#liExhibitionTab').hasClass('active')) { type = 'exhibitions'; } const urlHashParam = new URLSearchParams(location.hash); const selectedDay = urlHashParam.get('selectedDay'); $.ajax({ type : "post", url : '/comm/api/dayListMonth/en/'+year+month+'/'+type, data : {}, success: function(result) { var events = new Array(); var exhibitions = new Array() if(result.events) { $.each(result.events, function(idx, item){ events.push(item.baseDt); }); } if(result.exhibitions) { $.each(result.exhibitions, function(idx, item){ exhibitions.push(item.baseDt); }); } var $day = $("#simpleCalendar").find('.day'); var lastDate = new Date(year, month, 0) var dateCnt = 1; $day.each(function(idx, item) { $(item).removeClass('has-event'); $(item).removeAttr('onclick'); var $getEventDay = $(item)[0].outerText; // console.log('(idx+1) =' + (idx+1) + ' , getEventDay = ' + $getEventDay + ' , lastDate.getDate() = ' + lastDate.getDate() + ' , dateCnt = '+ dateCnt); if((idx+1) >= $getEventDay && lastDate.getDate() >= dateCnt) { var iconStr = ''; $(item).addClass('has-event'); $(item).children('button').attr('onclick', 'onClickDayEvent(this)'); $(item).children('button').attr('data-day', dateCnt); // console.log('selectedDay = ' + selectedDay); if(selectedDay && selectedDay.substr(4,2) == month && selectedDay.substr(6,2) == $getEventDay.padStart(2, "0") ) { $(item).children('button').addClass('active--focus'); }else{ $(item).children('button').removeClass('active--focus'); } if( events.includes($getEventDay.padStart(2, "0")) ) { iconStr += '<i class="ico-bullet c-eventCal2"><em class="blind">Festivals & EventsSchedule</em></i>'; } if( exhibitions.includes($getEventDay.padStart(2, "0")) ) { iconStr += '<i class="ico-bullet c-eventCal3"><em class="blind">Exhibitions&HallyuSchedule</em></i>'; } if(iconStr != '') { $(item).append('<span class="event-bullet">'+ iconStr + '</span>'); } dateCnt++; } }); currentMonth = year+month; }, error: function(data, status, err) { console.log('error forward : ' + JSON.stringify(data)); } }); } /* * onClickDayEvent * * 캘린더에서 특정일을 클릭 했을때의 이벤트 처리. * 클릭한 날짜에 대한 style을 변경하고, 서버에 클릭한 날짜에 대한 행사 목록조회 요청 한다. */ function onClickDayEvent(e) { if(isProcess) return; var yy = $('#simpleCalendar').find('.month').attr('data-year'); var mm = $('#simpleCalendar').find('.month').attr('data-month'); const day = $(e).attr('data-day'); var selMonth = yy + mm.toString().padStart(2, "0"); var selDay = yy + mm.toString().padStart(2, "0") + day.toString().padStart(2, "0"); if(selDay != currentDay) { isProcess = true; currentDay = selDay; } $('.js-simple-calendar').find('.has-event > button').removeClass('active--focus'); $(e).addClass('active--focus'); makeHashAndRequest(selMonth, selDay); } /* * selectDayEvent * * 캘린더에서 선택한 일자에 대한 행사 목록 조회 하여 우측 영역에 세팅. * */ function selectDayEvent(year, month, day) { var type = 'All'; if($('#liAllTab').hasClass('active')) { type = 'All'; }else if($('#liEventsTab').hasClass('active')) { type = 'events'; }else if($('#liExhibitionTab').hasClass('active')) { type = 'exhibitions'; } $.ajax({ type : "post", url : '/comm/api/eventListDay/en/'+year+month+day+'/'+type, data : {}, success: function(result) { const ymd = year + '.' + month + '.' + day; const ymd2 = year + '-' + month + '-' + day; $('#divDateTitle').children('strong').text(ymd + '('+ ymd2.format('weekday') +')'); $('#divEventList').empty(); $("#eventListTmpl").tmpl(result).appendTo("#divEventList"); isProcess = false; }, error: function(data, status, err) { console.log('error forward : ' + JSON.stringify(data)); isProcess = false; } }); } /* * setCelendar * * 캘린더 초기 설정. */ function setCelendar() { _simpleCalendar = $("#simpleCalendar").simpleCalendar({ months: ['01','02','03','04','05','06','07','08','09','10','11','12'], days: ['sunday','monday','tuesday','wednesday','thursday','friday','saturday'], displayYear: true, // Display year in header fixedStartDay: 0, // Week begin always by monday or by day set by number 0 = sunday, 7 = saturday, false = month always begin by first day of the month displayEvent: true, // Display existing event disableEventDetails: true, // disable showing event details disableEmptyDetails: true, // disable showing empty date details events: [], // 이거 안씀 onInit: function (calendar) { // Callback after first initialization // setSimpleCalendarHeaderYear(); // 헤더 Year 셋팅 /* 20230920//(Ina)웹접근성 setSimpleCalendarHeader() 분리 */ // setSimpleCalendarHeaderBtnText(); // 헤더 버튼 대체텍스트 셋팅 /* 20230920//(Ina)웹접근성 setSimpleCalendarHeader() 분리 */ // setSimpleCalendarTableCaption(); // table caption 셋팅 /* 20230920//(Ina)웹접근성 setSimpleCalendarTableCaption() 추가 */ // setSimpleCalendarHeader(); // 헤더셋팅 // setSimpleCalendarSundayColor(); // 공휴일색깔 셋팅 }, onMonthChange: function (month, year) { // Callback on month change setSimpleCalendarHeaderYear(); // 헤더 Year 셋팅 /* 20230920//(Ina)웹접근성 setSimpleCalendarHeader() 분리 */ setSimpleCalendarHeaderBtnText(); // 헤더 버튼 대체텍스트 셋팅 /* 20230920//(Ina)웹접근성 setSimpleCalendarHeader() 분리 */ setSimpleCalendarTableCaption(); setSimpleCalendarSundayColor(); // 공휴일색깔 셋팅 // // month값 넣어주기 $('#simpleCalendar').find('.month').attr('data-year', year); $('#simpleCalendar').find('.month').attr('data-month', month + 1); var mm = (month + 1).toString().padStart(2, "0"); const urlHashParam = new URLSearchParams(location.hash); const selectedDay = urlHashParam.get('selectedDay'); if(selectedDay) { makeHashAndRequest(year+mm , selectedDay); }else{ makeHashAndRequest(year+mm , ''); } }, onDateSelect: function (date, events) {}, // Callback on date selection onEventSelect: function() { // Callback on event selection - use $(this).data('event') to access the event $(this).data('event'); }, onEventCreate: function( $el ) {}, // Callback fired when an HTML event is created - see $(this).data('event') onDayCreate: function( $el, d, m, y ) {} // Callback fired when an HTML day is created - see $(this).data('today'), .data('todayEvents') }); } /* * setCelendar * * 캘린더 초기 설정. (캘린더가 다른 영역으로 갔다 올경우 현재일자 기준으로 초기화를 시켜준다) */ function initCalendar() { let $calendar = _simpleCalendar.data('plugin_simpleCalendar'); var date = new Date(); const urlHashParam = new URLSearchParams(location.hash); const selectedMonth = urlHashParam.get('selectedMonth'); if(selectedMonth) { date = new Date(selectedMonth.substr(0,4) + '-' + selectedMonth.substr(4,2) + '-' + '01') } $calendar.currentDate = date; $calendar.currentDate.setMonth(date.getMonth(), 1); $calendar.buildCalendar($calendar.currentDate, $($calendar.element).find('.calendar')); $calendar.updateHeader($calendar.currentDate, $($calendar.element).find('.calendar header')); // if(!selectedMonth) $calendar.settings.onMonthChange($calendar.currentDate.getMonth(), $calendar.currentDate.getFullYear()); } /* * getHoliday * * 공공데이터에서 공휴일정보를 조회 하고 , 캘린더에 해당 일(공휴일)에 대한 style을 변경 한다 */ function getHoliday(year, month) { $.ajax({ type : "get", url : 'http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getRestDeInfo?solYear='+year+'&solMonth='+month+'&_type=json&ServiceKey='+apiKey, data : {}, success: function(result) { var items = result.response.body.items; var cnt = result.response.body.totalCount; if(cnt > 0) { var holidays = new Array(); if(cnt == 1) { holidays.push(items.item.locdate + ''); }else{ $.each(items.item, function(idx, data){ holidays.push(data.locdate + ''); }); } var $day = $("#simpleCalendar").find('.day'); $day.each(function(idx, item) { var $getEventDay = $(item)[0].outerText.padStart(2, "0"); if( holidays.includes(year+ month+$getEventDay) ) { $(item).closest('td').addClass('c-sunday'); } }); } }, error: function(data, status, err) { console.log('error forward : ' + JSON.stringify(data)); } }); } /* * preSumbit * * 폼 서빗 전에 해시 파라미터를 세팅 한다(history.back으로 되돌아 올 경우 때문에) */ function preSumbit() { var hascAction = $('#postSearchFrm').attr('action') + location.hash; $('#postSearchFrm').attr('action',hascAction); } /* * makeHashAndRequest * * 해시파라미터를 세팅 하여 요청을 보내기 위함. */ function makeHashAndRequest(ym, ymd) { var hash = '' if($('#liAllTab').hasClass('active')) { hash = '#tabAll'; }else if($('#liEventsTab').hasClass('active')) { hash = '#tabEvents'; }else if($('#liExhibitionTab').hasClass('active')) { hash = '#tabExhibitions'; } if(ym){ hash += '&selectedMonth=' + ym; } if(ymd){ hash += '&selectedDay=' + ymd; } location.hash = hash; } var test = 0; /* * procHashParameter * * 페이지가 로딩 되었을 때 해시 파라미터가 잇는 경우 파싱하여 처리. */ function procHashParameter() { var hash = location.hash; // console.log('procHashParameter hash ; ' + hash); const urlHashParam = new URLSearchParams(hash); var selectedTab = ''; if(hash.startsWith('#tabAll')){ $('#liAllTab').addClass('active').siblings().removeClass('active'); $('.js-tab-btn').attr('title', ''); $('#liAllTab a').attr('title', "Selected List Item"); $('.section-event-calendar').attr('data-event-cal', 'eventCal1'); selectedTab = 'tabAll'; }else if(hash.startsWith('#tabEvents')){ $('#liEventsTab').addClass('active').siblings().removeClass('active'); $('.js-tab-btn').attr('title', ''); $('#liEventsTab a').attr('title', "Selected List Item"); $('.section-event-calendar').attr('data-event-cal', 'eventCal2'); selectedTab = 'tabEvents'; }else if(hash.startsWith('#tabExhibitions')){ $('#liExhibitionTab').addClass('active').siblings().removeClass('active'); $('.js-tab-btn').attr('title', ''); $('#liExhibitionTab a').attr('title', "Selected List Item"); $('.section-event-calendar').attr('data-event-cal', 'eventCal3'); selectedTab = 'tabExhibitions'; } // if(selectedTab != currentTab) { // currentMonth = ''; // currentTab = selectedTab; // initCalendar(); // } //선택된 년/월이 있는 경우 const selectedMonth = urlHashParam.get('selectedMonth'); if(selectedMonth) { if(selectedMonth != currentMonth ){ console.log('procHashParameter retrive tab : ' + selectedTab + ' , month : ' + selectedMonth ); setSimpleCalendarDayEvent(selectedMonth.substr(0,4), selectedMonth.substr(4,2)); } } //선택된 일자가 있는 경우 const selectedDay = urlHashParam.get('selectedDay'); if(selectedDay) { selectDayEvent(selectedDay.substr(0,4), selectedDay.substr(4,2), selectedDay.substr(6,2)); }else{ if(selectedTab != currentTab) { currentMonth = ''; currentTab = selectedTab; initCalendar(); selectDayEvent(new Date().getFullYear(), (new Date().getMonth()+1).toString().padStart(2, "0"), (new Date().getDate()).toString().padStart(2, "0")); } } } function clickTab(tab) { } /* * ready * * 문서가 모두 로딩 된 후 실행. * -캘린더 세팅 * -해시 파라미터 파싱 처리. * -캘린터 현재 일자 세팅. * -해시 파라미터가 변경될 때의 처리. */ $(document).ready(function() { setCelendar(); procHashParameter(); initCalendar(); window.onhashchange = procHashParameter; }); </script> <script> $('#likePopup').find('.js-popup-close').click(function(e){ $('#likePopup').removeClass('active'); $('body').removeClass('js-overflow-hidden'); $('#iptPopupCid').val(''); }); function fn_check_wishlist(area, cid) { getDataByCid(cid , function(result){ if(result){ deleteByCid(cid, function(result){ if(result == 0) { $('#btnLike'+cid).attr('data-like-active', 'false'); $('#btnLike'+cid).find('em').html('Favorites '); } }); }else{ var jobj = listData[cid]; jobj.area = area; jobj.regDttm = new Date(); insertData(jobj, function(result){ if(result == jobj.cid) { $('#btnLike'+cid).attr('data-like-active', 'true'); $('#btnLike'+cid).find('em').html('Favorites '+ ' ' +' Selected '); } }); } $('#iptPopupCid').val(''); $('input[name="radioOptionLike"]').filter("[value=TURSM_AREA_8]").prop("checked", true); }); } $('.btn-like').on('click', function(e) { e.preventDefault(); if ($(this).attr('data-like-active') == 'true') { fn_check_wishlist('', this.dataset.cid); }else{ $('#iptPopupCid').val(this.dataset.cid); let area = this.dataset.area; $("input[name='radioOptionLike']").each(function(index){ if(area == this.value) { this.checked = true; } }); $('#likePopup').addClass('active'); $('#likePopup').find('input[type="radio"]:checked').focus(); // 웹접근성, focus추가 $('#likePopup').attr('data-like-num', $(this).attr('data-like-num')); } }); $('#btnLikeSave').click(function(e){ var area = ''; let cid = $('#iptPopupCid').val(); $("input[name='radioOptionLike']").each(function(index){ if(this.checked) { area = this.value; } }); fn_check_wishlist(area, cid); $('#likePopup').removeClass('active'); $('body').removeClass('js-overflow-hidden'); }); $('.like-cont').each(function( index ) { let cid = $(this).attr('id'); getDataByCid(cid , function(result){ if(result){ $('#btnLike'+cid).attr('data-like-active', 'true'); $('#btnLike'+cid).find('em').html('Favorites '+ ' ' +' Selected '); }else{ $('#btnLike'+cid).attr('data-like-active', 'false'); $('#btnLike'+cid).find('em').html('Favorites '); } }); }); </script></main> <!-- start:footer --> <!-- footer(s) --> <footer class="footer"> <div class="footer-inner"> <!-- 202341106//(Ina).footer-group-01 영역 수정(s) --> <div class="footer-group-01"> <div class="row logo"> <span> <!-- ico-sto : 한국어 서울관광재단 로고 ico-sto.en : 영문/말레이어 서울관광재단 로고 ico-sto.jp : 일문 서울관광재단 로고 ico-sto.cn : 간체 서울관광재단 로고 ico-sto.tw : 번체 서울관광재단 로고 ico-sto.ru : 러시아 서울관광재단 로고 (임시 영문로고로 반영) --> <a class="btn-sto" href="http://www.sto.or.kr" target="_blank" title="Seoul Tourism Organization"> <i class="ico-sto"><em class="blind">STO SEOUL TOURISM ORGANIZATION</em></i> </a> </span> <span> <a class="btn-seoulMySoul" href="https://english.seoul.go.kr/" target="_blank" title="The Seoul Metropolitan Government"> <i class="ico-seoulMySoul"><em class="blind">SEOUL MY SOUL</em></i> </a> </span> </div> <div class="row privacy"> <span> <a class="btn-privacy" href="http://www.sto.or.kr/english/privacy" target="_blank" title="Privacy Statementopen new window"><b>Privacy Statement</b></a> </span> <span> <a class="btn-announcements" href="/announcements" title="Announcement"><b>Announcement</b></a> </span> </div> </div> <!-- 202341106//(Ina).footer-group-01 영역 수정(e) --> <div class="footer-group-02"> <div class="row"> <dl> <dt>Operating Hours/Time</dt> <dd> <span>Mon – Fri, 9 a.m. – 6 p.m. (KST)</span> <span> <a class="btn-link" href="mailto:staff@visitseoul.net" title="Operate external mail delivery system in a new window">staff@visitseoul.net</a> </span> </dd> </dl> <dl> <dt>Inquiry</dt> <dd> <span> <a class="btn-info" href="/tourist-complaint-center" target="_blank" title="Tourist Complaint Center"> <em>Tourist Complaint Center</em> <i class="ico-more"></i> </a> </span> <span> <a class="btn-info" href="https://1330chat.visitkorea.or.kr:3000/#/ttalk_main/CHAT1330_160635739001093018/_0400_0100_localgovernment" target="_blank" title="Open new window for General Tourism Inquiries"> <em>General Tourism Inquiries 1330</em> <i class="ico-more"></i> </a> </span> </dd> </dl> </div> <div class="row"> <dl> <dt>The new official Seoul travel app</dt> <dd> <span> <a class="btn-info" href="https://itunes.apple.com/app/i-tour-seoul/id360156429" target="_blank" title="app store open new window"> <em>App Store</em> <i class="ico-more"></i> </a> </span> <span> <a class="btn-info" href="https://play.google.com/store/apps/details?id=com.sto.android.client.itourseoul" target="_blank" title="google Play open new window"> <em>Google Play</em> <i class="ico-more"></i> </a> </span> </dd> </dl> <dl class="sns"> <dt>Visit Seoul SNS</dt> <dd> <a class="btn-fb" href="https://www.facebook.com/VisitSeoul/" target="_blank" title="Open new window for Visit Seoul Facebook page"> <i class="ico-fb"></i> </a> <a class="btn-instar" href="https://www.instagram.com/visitseoul_official/" target="_blank" title="Open new window for Visit Seoul Instagram page"> <i class="ico-instar"></i> </a> <a class="btn-yt" href="https://www.youtube.com/user/visitseoul" target="_blank" title="Open new window for Visit Seoul Youtube page"> <i class="ico-yt"></i> </a> </dd> </dl> </div> <div class="row copyright"> <span>6F, 85, Cheonggyecheon-ro, Jongno-gu, Seoul, Republic of Korea</span> <span>© 2024 Seoul Tourism Organization. All rights reserved</span> </div> </div> <div class="footer-group-03"> <dl> <dt> <i class="ico-ismsP"> <em class="blind">ISMS·P / Personal Information & Information Security Management System</em> </i> </dt> <dd> Personal information & Information<br> Security Management System</dd> </dl> <dl> <dt> <i class="ico-webacc"> <em class="blind">Ministry of Science and ICT WA (Web Accessibility)Quality Certification Mark, WebWatch 2024.7.9 ~ 2025.7.8</em> </i> </dt> <dd> Web Accessibility<br> Quality Mark</dd> </dl> <dl> <dt> <i class="ico-appAward"> <em class="blind">AA APP AWARD23 INNOVATOR</em> </i> </dt> <dd> Smart App Award<br>2023</dd> </dl> <dl> <dt> <i class="ico-webAward"> <em class="blind">WA WEB AWARD23 WINNER</em> </i> </dt> <dd> Web Award<br>2023</dd> </dl> </div> </div> </footer> <!-- gnb and search 마스크처리 --> <div class="mask-layer"></div> <div class="mask-layer--search"></div> <!-- footer(e) --> <!-- 20240906//(Ina) 스크립트 추가(s) --> <script> $(document).ready(function() { if(location.pathname === "/AboutSeoul"){ $('.main--renewal-2024').removeClass('no-sub-visual'); } }); </script> <!-- 20240906//(Ina) 스크립트 추가(e) --><!-- end:footer --> </div> <script> $(window).load(function () { if (navigator.userAgent.indexOf("Trident") > 0) { $('.info-IE').css('display', 'block'); window.location.href = 'microsoft-edge:' + location.href; } else if (/MSIE \d |Trident.*rv:/.test(navigator.userAgent)) { $('.info-IE').css('display', 'block'); window.location.href = 'microsoft-edge:' + location.href; } }); </script> <script> </script> <!-- <script src="//weblog.eseoul.go.kr/wlo/js/install.js"></script> --> <noscript> <img height="1" width="1" src="https://www.facebook.com/tr?id=281238195644628&ev=PageView&noscript=1" alt=""/> </noscript> <script type="text/javascript"> (function(w, d, a){ w.__beusablerumclient__ = { load : function(src){ var b = d.createElement("script"); b.src = src; b.async=true; b.type = "text/javascript"; d.getElementsByTagName("head")[0].appendChild(b); } };w.__beusablerumclient__.load(a + "?url=" + encodeURIComponent(d.URL)); })(window, document, "//rum.beusable.net/load/b220330e163642u911"); </script> </body> </html>