우리가이 코드를 보자 : 우리가 예를 들어, 클릭을하면 상위 계층 inner_child_2에이벤트가 볼 수 DOM 요소를 통과 만들려면
<div id="outer_container">
<div id="inner_child_1"></div>
<div id="inner_child_2"></div>
</div>
div#outer_container
{
position: relative;
width: 200px;
height: 200px;
background-color: green;
}
div#inner_child_1
{
position: absolute;
z-index: 1
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: red;
}
div#inner_child_2
{
position: absolute;
z-index: 2
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: blue;
}
을, 이벤트에 등록 된 모든 이벤트 핸들러에 전파됩니다 inner_child_2와 그 부모 outer_container. inner_child_2 바로 아래에도 불구하고 inner_child_1하지 마세요. 이것은 사양입니다. 최신의 모든 브라우저가 그것을합니다.
어떻게 이벤트가 inner_child_2를 통과하고 Z- 인덱스 표시 또는 변경하지 inner_child_1 만들기 외에, inner_child_1에 도달하기 위해 :
내 질문은 이것이다? (또는 투명하지만 IE8에서만 작동합니다)
inner_child_2에 등록 된 일부 처리기 코드에서 이벤트를 직접 트리거하는 것에 대해 생각했습니다. 하지만 실제 사용 사례에서는 어디서 이벤트를 파견해야할지 모르겠다. inner_child_2 아래에는 예측할 수없는 방식으로 배치 된 여러 요소가 있으며 inner_child_2가없는 것처럼 이벤트를 수신하기를 원합니다. 이상적으로, 나는 다른 사람들을 지키면서 일부 이벤트를 선택적으로 전달할 수 있기를 원합니다.
내가이 어려운 질문입니다 알지만, 어떤 제안
을 주셔서 감사합니다
물론 아이들의 상태, z- 인덱스 및 다른 재미있는 것들을 평가해야합니다. 그리고 그 아이가 적절한 타입의 이벤트 처리기를 등록했는지 어떻게 알 수 있습니까? –
아이의 이벤트가 등록되지 않으면 무시 될 것이라고 생각합니다. z- 인덱스에 관계없이 처리하지 않으시겠습니까? 마지막으로 표시 상태를 확인해야하지만 너무 나쁘지 않아야합니다. – ChessWhiz
감사. 나는 브라우저 절반을 다시 구현하는 것을 포함하지 않는 해결책을 원했다. 더 연구해야하지만 경계와 좌표를 비교하는 부분은 매우 복잡해 보입니다. –