최근 내가 요소 이벤트에 대한 장에서, John Resig
의 책 Secrets of Javascript Ninja
을 읽고, 그가 쓰기 :Javascript : 스스로 이벤트 처리기를 관리해야합니까?
그래서 그의 다음 코드에서, 그는 캐시 큐 등으로 정의을 이유로 들어, 요소에 직접 이벤트 처리기를 바인딩하지하는 것이 유리하다.
addEvent
detachevent
dispatcher
triggerevent
방법 및 저장 이벤트 핸들러를 정의합니다.
브라우저 호환성 문제에도 불구하고, 이벤트 처리기를 요소에 직접 바인딩하지 않는 다른 이유가 있습니까?
목록 페이지의 편집 단추 처리기 또는 50 개 항목과 같은 많은 요소에 처리기를 추가하려는 경우 선호하는 경우가 있습니다. –
요소에 수신기를 추가할지 또는 부모에게 "위임"할지 요소는 (지정되지 않은) 브라우저 비교 가능성 문제와 관련이 없습니다. 애플리케이션 디자인과 관련이 있습니다. 하나의 리스너를 필요로하는 모든 셀에 리스너를 추가하는 대신 테이블의 모든 클릭 이벤트를 처리하는 테이블에 단일 리스너를 추가하는 것이 유리할 수 있습니다 (보다 단순한 로직, 유지 보수 등). – RobG