parent dom에서 "stopPropagation"을 사용하는 방법은 무엇입니까?
위의 그림에서 상위 DOM 노드에는 이벤트가 있고 하위 노드도 있습니다.
자식에서 stopPropagation을 사용하여 버블 링을 방지 할 수 있습니다.
하지만 너무 많은 자식이있는 경우 너무 많은 stopPropagation이 발생해야합니다. 부모 노드에서 사용하는 함수가 자식 거품을 멈출 수 있습니까?
parent dom에서 "stopPropagation"을 사용하는 방법은 무엇입니까?
위의 그림에서 상위 DOM 노드에는 이벤트가 있고 하위 노드도 있습니다.
자식에서 stopPropagation을 사용하여 버블 링을 방지 할 수 있습니다.
하지만 너무 많은 자식이있는 경우 너무 많은 stopPropagation이 발생해야합니다. 부모 노드에서 사용하는 함수가 자식 거품을 멈출 수 있습니까?
이벤트가 특정 종류의 자식 요소를 통과 한 경우 부모 이벤트 핸들러가 수행하는 작업을 피하고 싶은 것 같습니다. 이 경우 부모 이벤트 처리기에서 event.target
을 사용하여 이벤트가 일치하는 하위를 통과했는지 여부를 파악할 수 있습니다.
:
theParentElement.addEventListener("the-event", function(e) {
for (var node = e.target; node && node != this; node = node.parentNode) {
if (isChildWeWantToFilterOut(node)) {
return;
}
}
// parent handler logic that you only want to run when the
// event didn't pass through a relevant child
}, false);
브릴리언트 !!! 그게 내가 필요한거야. 혼란을 낳는 나의 가난한 영어를 유감스럽게 생각한다. – pingfengafei
당신이 당신의 코드를 공유 할 수 있습니까? – Rayon
네가 이해할 수 있다면 네, 물론 가능합니다. 문제가 무엇인지 확실하지 않습니다. – dfsq