[JavaScript] 이벤트 개념/종류/처리하기
Event Handle(이벤트 처리)
Event : 사용자가 하는 행동을 의미한다. 예를 들어 마우스 클릭/이동, 키보드 입력...
Event Handle : 이벤트가 발생했을 때, 프로그래머가 원하는 동작을 할 수 있도록 선언하는 것
Event Handler : 이벤트가 발생했을 때, 실행할 문장을 작성한 부분
이벤트의 종류
[마우스 이벤트]
-
mouseover : 요소에 마우스가 올라갔을때
-
mouseout : 요소에서 마우스가 벗어났을 때
-
mousemove : 요소에서 마우스가 움직일 때
-
click : 요소를 클릭할 때
-
dbclick : 요소를 더블클릭할 때
[키보드 이벤트]
-
keypress : 키보드가 눌림
-
keydown : 키보드가 눌림
-
keyup : 키보드 올라옴
[기타 이벤트]
-
focus : 요소가 포커스를 얻었을 때
-
blur : 요소가 포커스를 잃었을때
-
change : 요소의 속성값이 변경되었을 때
-
load : 요소가 로딩이 완료되었을 때
-
submit : form 요소의 reset 버튼이 눌렸을 때
-
reset : form 요소의 reset 버튼이 눌렸을 때
-
resize : 요소의 사이즈가 변경되었을 때
-
error : 요소 로딩 중에 에러가 발생했을 때
이벤트 처리하기!!
-
요소에 직접 event를 작성
<button id="btn" onclick="btnEvent()">버튼1</button>
function btnEvent(){alert("btn3 클릭!!");}; -
스크립트 요소 선택 후, 핸들러 등록
2-1. 요소.이벤트 = 핸들러;
btn2.onclick = function(){alert("버튼2 클릭!!");};
onclick : click 이벤트를 등록하겠다.
2-2. 요소.addEventListner(이벤트,실행함수,false);
div1.addEventListener("click",function(){alert("div클릭!!");},false);
Event Handler와 Listener는 비슷해보이지만 다르다. 핸들러를 사용하기 위해서는 객체에 해당 이벤트가 발생했는지 체크해주는 리스너가 반.드.시 필요하다. 지금까지 리스너 없이 핸들러를 사용할 수 있었던 것은 해당 핸들러의 리스너가 이미 만들어져 있어 우리가 따로 만들필요가 없기 때문이다.
2-3. 요소.on(“이벤트”,function(){ })
$("#myForm").on("submit",function(){})
on()은 이벤트 핸들러를 등록 하는 함수이다.
파라미터 / 반환값
파라미터(parameter는 함수 실행 시 필요한 값을 얻어오기 위한 변수(매개변수)이며, 함수 선언 시 정의한다. 반환값(return value)은 함수 실행 후 결과를 반환하기 위한 값이며 return 문장을 사용한다.
하지만, 자바스크립트에서는 파라미터가 선언되어 있더라도 호출시에 인자를 꼭 전달해주지 않아도 되며, 파라미터를 선언하지 않아도 인자를 넘길 수 있다.
arguments 객체는 모든 함수 내에서 이용 가능한 지역 변수 입니다. arguments 객체를 사용하여 함수내에서 모든 인수를 참조 할 수 있으며, 호출할 때 제공한 인수 각각에 대한 항목을 갖고 있다!
자바스크립트는 반환값에 함수를 반환할 수도 있다. 주의할 점은 반환값에 함수가 있다면 함수를 호출했다고 해서 반환값에 있는 함수가 실행되지 않는다.
var myFunc = function(){
alert("myFunc 입니다!!");
return function(){alert("myFunc가 반환한 함수입니다");};};
함수 호출시 반환값을 실행하고 싶다면 아래와 같이 코드를 작성해야 한다.
var result = myFunc();
result();
myFunc()();