onmouseover 및 onmouseout 이벤트가있는 테이블에 <td>
의 묶음이 있습니다. 거기에 하나의 이벤트 핸들러 만 있고 싶습니다. 예를 들어 <table>
자체에서 모든 이벤트를 처리하여 페이지에서 너무 많은 이벤트 처리기를 방지하는 방법을 알고 싶습니다. 네이티브 javascript를 사용하면이 작업을 수행하는 가장 좋은 방법은 무엇입니까?버블 링 이벤트 디자인
0
A
답변
0
이벤트해야 기포가 계층 구조의 하위 요소 아래에서 프로세스 취소하지 않는 한 테이블까지. 표에서 mouseover
및 mouseout
이벤트에 대한 이벤트 리스너를 설정하고 대상이 <td>
셀인지 확인할 수 있습니다. 그렇다면 해당 이벤트를 처리하십시오. 여기에 간단한 예가 있습니다.
var table = document.getElementById("myTable");
table.addEventListener('mouseover', function(event) {
var target = event.target;
if (target.nodeName == 'TD') {
target.style.backgroundColor = '#FFF';
}
});
마우스 이벤트는 compatibility table을 참조하십시오. 이전 버전의 IE는 w3c 사양에 따라 DOM 이벤트 등록 모델을 따르지 않으므로 attachEvent
을 사용하여 IE에만 이벤트를 첨부해야합니다.
IE와 다른 브라우저의 차이점을 더 잘 이해하려면 article을 읽어보십시오.
브라우저가 아닌 브라우저 example을 여기에서 체크 아웃하십시오.
0
자바 스크립트를 사용하면 두 핸들러를 각각 설정할 수 있지만 페이지가 어수선하게 정리되지는 않습니다. getElementsByTagName ("td")을 사용하여 적절하게 수정하십시오. 그런 다음 각 요소에 대해 tableElem, tableElem.onMouseOver = function() {whatever ...} 및 tableElem.onMouseOut = function() {whatever ...}을 반복합니다.
예를 들어 jQuery를 사용하려는 경우 더 간결하게 만들 수 있습니다. $ ("td"). mouseOver (function() {whatever;});
0
예제 코드 :
table.onmouseover = function(event) {
var target = (event && event.target) || window.event.srcElement;
if(target.nodeName.toLowerCase() !== 'td') return;
// do stuff
};
관련 문제
- 1. 이벤트 버블 링 이상한
- 2. href 이벤트 버블 링 중지
- 3. 이벤트 버블 링 jQuery를 + 탭
- 4. flex 맞춤 이벤트 버블 링
- 5. 이벤트 버블 링 (프로토 타입
- 6. 목록 상자에서의 버블 링 이벤트
- 7. 이벤트 버블 링 문제 (ScrollViewer)
- 8. 이벤트 버블 링 및 onblur 이벤트
- 9. 사파리 4 창에서 키 이벤트 버블 링
- 10. jquery 이벤트 네임 스페이스 버블 링 문제
- 11. WPF의 버블 링 이벤트? 간단한 질문
- 12. Android ListView 및 이벤트 버블 링
- 13. Chrome 자바 스크립트 : 이벤트 버블 링 질문
- 14. Silverlight 버블 링 마우스 이동 이벤트 취소
- 15. 텍스트 선택 및 버블 링
- 16. 새 레코드 버블 링
- 17. SQL에서 열 최대 버블 링
- 18. 버블 링 이벤트가 발생하지 않습니다.
- 19. jQuery 이벤트 버블 링, live(), 클릭 이벤트가 전파되지 않음
- 20. Onmouseover 하위 div 문제 및 이벤트 버블 링
- 21. Winforms의 이벤트 버블 링 및 터널링을 수행하는 스마트 패턴은 무엇입니까?
- 22. 자바 스크립트에서 버블 링 된 이벤트 객체에 속성 추가하기
- 23. 자바 스크립트 이벤트 버블 링 작동하지 않음으로 예상
- 24. Flex의 사용자 정의 컴포넌트 내의 이벤트 버블 링
- 25. 중첩 된 요소 와일드 카드 선택기/이벤트 버블 링
- 26. WPVM for MVVM 및 Prismv2 - 이벤트 버블 링?
- 27. WPF : 하나의 특정 콘텐츠에서만 버블 링 이벤트 처리
- 28. 버블 링 단계에서 이벤트를 전파하는 방법은 무엇입니까?
- 29. jquery focusin() 및 버블 링 방지
- 30. Flex 4 버블 링하는 맞춤 이벤트
하지만 테이블 자체를 떠나지 않고도 마우스 오버/아웃에서 이벤트가 계속 발생합니까? –
예, 이벤트는 테이블에 포함 된 각 하위 요소에 대해 실행됩니다. 브라우저는이 짝수 유형에 대해 전체 트리에 연결된 리스너가 없으면 이벤트를 발생시키지 않기 위해이 동작을 최적화 할 수 있지만 대개 성능 병목 현상은 아니지만 사실 엄청난 수의 셀을 보유하고 있지 않으면 성능을 향상시킵니다 자손 요소가 포함되어 있으면 마우스가 포함 된 요소를 오가올 때마다 실행됩니다. – Anurag