우선 여기에서 drag & drop event 관련 공부를 하고 있었는데 그거랑 별개로…
getelementbyid 로 img 태그의 id값을 가져오지 않고,
script에서 'ball’이란 img 태그의 id를 지목하여 이벤트를 등록할 수 있는지 궁금해서 이렇게 질문을 답니다
<html lang="ko">
<head>
<title>Vanilla Components</title>
</head>
<body>
<p>Drag the ball.</p>
<img
src="https://js.cx/clipart/ball.svg"
style="cursor: pointer"
width="40"
height="40"
id="ball"
/>
<script>
ball.onmousedown = function (event) {
//여기서 ball이 어떻게 module로 정의됐는지...
ball.style.position = "absolute";
ball.style.zIndex = 1000;
document.body.append(ball);
function moveAt(pageX, pageY) {
ball.style.left = pageX - ball.offsetWidth / 2 + "px";
ball.style.top = pageY - ball.offsetHeight / 2 + "px";
}
moveAt(event.pageX, event.pageY);
function onMouseMove(event) {
moveAt(event.pageX, event.pageY);
}
document.addEventListener("mousemove", onMouseMove);
ball.onmouseup = function () {
document.removeEventListener("mousemove", onMouseMove);
ball.onmouseup = null;
};
ball.ondragstart = function () {
return false;
};
};
</script>
</body>
</html>
그리고 그 ball.onmousedown에 마우스를 올리면
이렇게 module이라고 나오는데…
여기서 제 질문은 총 세 가지 입니다
-
어떻게 getelementbyid 로 img 태그의 id값을 가져와서 따로 선언하지 않고,
script 태그에서 'ball’이란 img 태그의 id를 지목하여 이벤트를 등록할 수 있는지? -
위의 캡쳐짤에서 ball에 마우스를 올리면 ’ module ball '이라고 나오는데
따로 변수로 지정된게 아닌 module 키워드는 어떤걸 의미하는지? -
여기선 img 태그의 id 값이 ball이라서, script에도 ball에 메서드를 지정하였지만
ball 대신 다른 문자나 집어넣어도 아무 error가 발생하지 않습니다
img태그와 script의 ball이란 이름으로 지정한 module(?)이 어떻게 나중에 이어지게 되는건지 궁금합니다.