<!--html-->
<button id="jsReset">Reset</button>
//javascript
const resetBtn = document.getElementById("jsReset");
if(resetBtn){
resetBtn.addEventListener("click", handleResetClick)
}
function handleResetClick(){
ctx.fillStyle = "white"
ctx.fillRect(0, 0, canvas.width, canvas.height);
}
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="styles.css">
<title>PaintJS</title>
</head>
<!--head태그 사이에 <link rel="stylesheet" href="블라블라.css"> -->
<script src="app.js"></script>
<script>
console.log("hi")
</script>
const saveBtn = document.getElementById("jsSave");
const colors = document.getElementsByClassName("jsColor");
이벤트 핸들러는 이벤트가 발생했을 때 실행되는 함수이며, 사용자의 행동에 어떻게 반응할지 코드로 표현한 것이다. onclick(html)/.onclick(javascript)로 할당할 수 있다.
onclick(html)/.onclick(javascript)은 하나의 이벤트에 복수로 할당할 수 없다는 문제가 있다. 이를 해결하기 위해 addEventListener를 활용할 수 있다.
//기본문법
element.addEventListener(event, handler, [options]);
if(canvas){
canvas.addEventListener("mousemove", onMouseMove);
canvas.addEventListener("mousedown", startPainting);
canvas.addEventListener("mouseup", stopPainting);
canvas.addEventListener("mouseleave", stopPainting);
canvas.addEventListener("click", handleCanvasClick);
canvas.addEventListener("contextmenu",handleCM);
};
이벤트가 발생하면 브라우저는 이밴트 객체를 만든다. 객체에 이벤트에 관한 상세한 정보를 넣은 뒤 핸들러에 인수 형태로 전달한다.
addEventListener로 객체를 이벤트 핸들러로 할당할 수 있다. 이벤트가 발생하면 객체에 구현한 handleEvent 메서드가 호출된다.
https://ko.javascript.info/introduction-browser-events