โ๊ฒฐ๋ก
๐ฉ๋ค์ด๊ฐ๋ฉฐ
๐๋ฌธ์ ์ ์
์๋ ์ฝ๋๋ ๋ ์ด์ด ํ์ ์ ๋์ฐ๋ ์ฝ๋๋ค
html์ text๋ก ๋ฐ์์์ ๋ฏธ๋ฆฌ ์กด์ฌํ๋ .popup.wrap์ innerHTML๋ก HTML text๋ฅผ ์ถ๊ฐํด ๋ ์ด์ด ํ์ ์ ๋์์ฃผ๋ ๋ฐฉ์์ธ๋ฐ,
function test() {
syusyu.common.Ajax.sendPOPRequest("GET", "/dlvAddr", '', res => {
const $popupWrap = document.querySelector('.popup-wrap');
$popupWrap.innerHTML = res;
$popupWrap.classList.toggle('active');
});
}
dlvAddr.js ํ์ผ์ด ๋ก๋๊ฐ ๋์ง ์๋๋ค ๐ข
<script src="<c:url value="${jsUrlFos}/popup/dlvAddr.js"/>" defer></script>
<div class="popup-layer w-510">
<div class="popup-head">
<h4>๋ฐฐ์ก์ง ๋ชฉ๋ก</h4>
๐คฆโโ๏ธ๊ด๋ จ๋ ์ฌ์ค ์์ง & โ์์ธ ์ถ๋ก
์ธ๋ถ ์คํฌ๋ฆฝํธ๋ฅผ ๋ก๋ํ๋ <script>
ํ๊ทธ๋ฅผ innerHTML
์์ฑ์ ํตํด ๋์ ์ผ๋ก ์ถ๊ฐํ๋๋ผ๋, ๊ทธ ์คํฌ๋ฆฝํธ๋ ์คํ๋์ง ์๋๋ค๋ ๊ฒ์
๋๋ค. ์ด๋ ๋ณด์์์ ์ด์ ๋ก, ์น ๋ธ๋ผ์ฐ์ ์์ ์ ๊ณตํ๋ innerHTML
์์ฑ์ ๋์ ๋ฐฉ์์
๋๋ค. ๋ฐ๋ผ์ ์์ ์ฝ๋์์ <script src="<c:url value="${jsUrlFos}/popup/dlvAddr.js"/>"></script>
๋ ์ค์ ๋ก ์คํฌ๋ฆฝํธ๋ฅผ ๋ก๋ํ๊ฑฐ๋ ์คํํ์ง ์์ต๋๋ค.
๋ฐ๋ผ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋์ ์ผ๋ก ์คํํ๋ ค๋ฉด innerHTML
์์ฑ์ ํตํด ์คํฌ๋ฆฝํธ๋ฅผ ์ถ๊ฐํ๋ ๋์ , ๋ณ๋์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์์์ ์ค๋ช
๋๋ฆฐ loadScript
ํจ์๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ๊ทธ ์์์
๋๋ค. ๋๋ HTML์ ์คํฌ๋ฆฝํธ๋ฅผ ์ง์ ์ฝ์
ํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
๐ฆพํด๊ฒฐ์ฑ ์๋
innerHTML์์ JQuery .html๋ก ๋ณ๊ฒฝํด๋ด
$(".popup-wrap").html(res);
๊ฒฐ๊ณผ์ ์ผ๋ก html ๋ด๋ถ์ script ์ฝ๋๋ ์คํ์ด๋๊ณ ์ธ๋ถ js ํ์ผ๋ ๋ถ๋ฌ๋ ์์ผ๋

dlvAddr.js ๋ด๋ถ์ DOMContentLoaded ์ด๋ฒคํธ๊ฐ ๋ฐ์์ด ์๋จ..
document.addEventListener("DOMContentLoaded", () => {
document.querySelector('.popup-wrap .close').addEventListener('click', () => {
syusyu.common.Popup.close();
});
});
์๊ณ ๋ณด๋ DOMContentLoaded
์ด๋ฒคํธ๋ ์น ํ์ด์ง๊ฐ ์ฒ์ ์์ ํ ๋ก๋๋์์ ๋ ํ ๋ฒ๋ง ๋ฐ์ํฉ๋๋ค. ๋ฐ๋ผ์, ํ์ด์ง ๋ก๋ ํ์ JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ๋์ ์ผ๋ก ์์๋ฅผ ์ถ๊ฐํ๋๋ผ๋ DOMContentLoaded
์ด๋ฒคํธ๋ ๋ค์ ๋ฐ์ํ์ง ์๋๋ค๊ณ ํ๋ค.
โ์์ธ & ํด๊ฒฐ๋ฐฉ๋ฒ
dlvAddr.js๋ฅผ ์๋์ฒ๋ผ ์์ ํด์ฃผ๋ ์ ๋๋ค.!
document.querySelector('.popup-wrap .close').addEventListener('click', () => {
syusyu.common.Popup.close();
});
๊ฒฐ๊ตญํด๊ฒฐ์ฑ ์ innerHTML(X) jQuery .html์ ์ฌ์ฉํ๋ ๊ฒ์ด์๋ค.
์ฌ๊ธฐ์ ๊ถ๊ธํ์
์๋๋ dlvAddr.jsp์ธ๋ฐ 3๋ฒ์งธ ์ค์์ script ํ๊ทธ๋ฅผ ๋ง๋๋ฉด html ์์ ๋ก๋๋ฅผ ๋ฉ์ถ๊ณ script๋ฅผ ๊ฐ์ ธ์ค๊ณ ํ์ฑํด์ ๋ ๋๋งํ ๊ฑฐ์๋์ผ ๊ทธ๋ฆฌ๊ณ ๋์ ์๋ div ํ๊ทธ๊ฐ ์ฝํ๊ฒ ์ง? ๊ทธ๋ฐ๋ฐ dlvAddr.js๋ฅผ ๋ณด๋ฉด ์์ง .close๊ฐ ์กด์ฌํ์ง ์๊ณ ์ฝํ์ง ์์๋๋ฐ ์ด๋ป๊ฒ ์ด๋ฒคํธ๊ฐ ๋ฑ๋ก๋๋๊ฑฐ?
ํ์คํ ๊ฑด ์๋๊ณ ๋ด๊ฐ ์ถ์ธกํ ๊ฑฐ์ง๋ง jQuery์ .html์ ์ฌ์ฉํด์ html ๋ฌธ์์ด์ ์ถ๊ฐํ๋ฉด ํด๋น ๋ฌธ์์ด์ด ๋จผ์ ์ ์ฒด์ ์ผ๋ก ํ์ฑ๋๊ณ , ๊ทธ ๋ค์์ <script> ํ๊ทธ ๋ด๋ถ์ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋๋ ๊ฒ ๊ฐ๋คโฆ
๊ทธ๋์ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋๋ ์์ ์์๋ ์ด๋ฏธ โ.closeโ ์์๊ฐ DOM์ ์ถ๊ฐ๋ ์ํ์ด๊ธฐ ๋๋ฌธ์, ํด๋น ์์์ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ๋ฑ๋กํ๋ ๊ฒ ๊ฐ๋ฅํ ๊ฒ ๊ฐ๋ค.



์ฌ์ค ์ ๋ฐฉ์์ html์ด ์ง์ํ๋ ๋ฐฉ์์ด๋ผ๊ณ ํ๋ค..
Uploaded by N2T