์ค๋์ Javascript๋ฅผ ํ์ฉํ์ฌ ์๊ตฌ๋๋ ๊ฐ๋จํ ์ฝ๋๋ฅผ ์์ฑํด๋ณด๋ ์ฐ์ต์ ํด๋ณด์๋ค. ์๊ตฌ๋ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ๋ค.
โ The text of the title should change when the mouse is on top of it.
โ The text of the title should change when the mouse is leaves it.
โ When the window is resized the title should change.
โ On right click the title should also change.
โ The colors of the title should come from a color from the colors array.
โ DO NOT CHANGE .css, or .html files.
โ ALL function handlers should be INSIDE of "superEventHandler"
ํด๋น ์กฐ๊ฑด์ ๋ง์กฑ์ํค๋ ๊ฒฐ๊ณผ๋ฌผ์ ๋์ถํ๊ธฐ ์ํ์ฌ, event handler๋ค์ ํ๊ณณ์ ์ ์ฅํ object
์ธ superEventHandler
๋ฅผ ์ ์ธํด์ฃผ๊ณ , ์์๋ค์ ์ ์ฅํ colors
array
๋ฅผ ์ ์ธํด ์ฃผ์๋ค. ๋ํ, ์ด๋ฒคํธ ๋ฐ์์ ๋ฐ๋ผ ํ
์คํธ์ ๋ณํ๊ฐ ์ฃผ์ด์ง <h2>
๋ document.querySelector("h2")
๋ฅผ ํตํด title
์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ์ ์ธํด์ฃผ์๊ณ , ๊ฐ๊ฐ์ ์ด๋ฒคํธ๋ MDN Javascript Event๋ฅผ ์ฐธ์กฐํ์๋ค.
๊ฐ์ฅ ๋จผ์ ๊ตฌํํ ๊ฒ์ "mouseenter" ์ด๋ฒคํธ ๋ฐ์์, title
์ ์์๊ณผ ํ
์คํธ๋ฅผ ๋ฐ๊พธ๋๋ก ํ๋ eventHandler
์ด๋ค.
const superEventHandler = {};
๋ก ๊ตฌ์ฑ๋์ด์๋ ํ์ฌ์ superEventHandler
๊ฐ์ฒด์ ํ์ ํจ์๋ก, handleMouseEnter
๋ฅผ ์ ์ธํ๊ณ , ๋ด์ฉ์ ์๋์ ๊ฐ์ด ์ง์ ํด์ฃผ์๋ค.
const superEventHandler = {
handleMouseEnter: function (event) {
title.innerText = "The mouse is here!";
title.style.color = colors[0];
}
};
์ดํ ์ด event handler๋ฅผ ์ํ๋ ๊ฐ์ฒด์ ์ถ๊ฐํด์ฃผ๋ฉด ๊ฐ๋จํ ํด๊ฒฐ๋๋๋ฐ, ๋ง์ฐ์ค๊ฐ ์ฌ๋ผ์๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ ์ถ์ ๊ฐ์ฒด๋ title
์ด๊ธฐ ๋๋ฌธ์, ์ด ๊ฐ์ฒด์ ์ถ๊ฐํ๋ค.
title.addEventListener("mouseenter", superEventHandler.handleMouseEnter);
addEventListener
์ ํน์ฑ์ ๋๋ฒ์งธ ์ธ์๋ก ์์ผํ๋ ํจ์์, ์ธ์๋ก์ ๋ฐ์ํ event
๋ฅผ ์๋์ผ๋ก ๋๊ฒจ์ฃผ๊ธฐ ๋๋ฌธ์, superEventHandler
์ handleMouseEnter
์ ๋ฐ๋ก ์ธ์๋ฅผ ์ ํด์ฃผ์ง ์์๋ ์ ๋ฌ๋๋ค.
"mouseleave"์ ๊ฒฝ์ฐ๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์งํํด์ฃผ๋ฉด ์ ์์ ์ผ๋ก ์๋ํ๋ค.
์ง๊ธ๊น์ง์ event listener๋ค์ title
์ ์ถ๊ฐ๋์ด, title
์์ ํด๋น ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ์ ๋ฐ์ํ์๋ค. ํ์ง๋ง ์ฌ์ด์ฆ๋ฅผ ๋ณ๊ฒฝํ ๋ ๋ฐ์ํ๋ event์ธ "resize"๋ window
์ event listener๋ฅผ ์ถ๊ฐํด์ฃผ์ด์ผ ์ ์์ ์ผ๋ก ๋ฐ์ํ๋ค. ๋ฐ๋ผ์,
handleResize: function (event) {
title.innerText = "You just resized!";
title.style.color = colors[2];
},
๋ฅผ superEventHandler
์ ์ถ๊ฐํด์ฃผ๊ณ ,
window.addEventListener("resize", superEventHandler.handleResize);
์์ ๊ฐ์ด event listener๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด, ์ฌ์ด์ฆ๋ฅผ ๋ณํํ ๋๋ง๋ค ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ค.
๋ฐ๋ฉด์ ์ฐํด๋ฆญ์ ๋ฐ์ํ๋ "contextmenu"๋ element ๋ง๋ค ์ง์ ํ ์ ์๊ณ , ๋ํ์ ์ธ ์ฌ์ฉ ์์๋ก ์ฐํด๋ฆญ์ ๋ชปํ๊ฒ ํ๋ ๊ธฐ๋ฅ์ด ์๋ค. ํ์ง๋ง, ์ด ์ฌ์ดํธ์ ํน์ element์ contextmenu
๋ฅผ ์ค์ ํ๋ฉด, ํด๋น element์์๋ง ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ง๋ง, window
์ ํด๋น ์ด๋ฒคํธ๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด, ์ฐฝ์ ์ด๋๊ณณ์์ ์ฐํด๋ฆญ์ ํ๋๋ผ๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ค.