2009-05-25 3 views
1
만약 내가

은 ... 부모 이벤트가 실행되지 않게하려면 어떻게합니까? 해봐요()가 실행되지 않도록 내가 아이 유혹있을 때

<div id="parent" onmouseover="doSomething()"> 
    <div id="child" onmouseover="doSomethingElse()"> 
    </div> 
</div> 

어떻게 그것을 할 수 있습니까? 나는 단지 doSomethingElse()가 아이를 가리키고있을 때만 실행하기를 원합니다. 나는 부모에게 물어볼 때 doSomething()을 실행하기를 원합니다.

아이를 가리킬 때마다 두 기능이 모두 실행됩니다. 어떤 아이디어?

매트

답변

1
function doSomethingElse(e) { 
// your function body 

e.stopPropagation() 

} 
+0

는 IE – Christoph

+0

에서 작동하지 않습니다 아닌가? – Macha

+0

아니요 순수 자바 스크립트입니다. https://developer.mozilla.org/En/DOM/Event.stopPropagation –

1

변경

onmouseover="doSomethingElse(event)" 

에 속성 값과 내가 그것을 테스트하지 못했지만, 수있는 몇 가지 방법이 있어야한다 doSomethingElse()

function doSomethingElse(e) { 
    e.stopPropagation && e.stopPropagation(); 
    e.cancelBubble = true; 
    // ... 
} 
+0

입니다 cancelBubble 표준 속성이 아닙니다. stopPropagation 메서드를 사용하는 것이 좋습니다 –

+1

@Marwan : IE 사용자를 무시하려면 먼저 대상 고객의 브라우저를 확인하십시오. – Christoph

+0

IE가 치료와 같은 표준을 무시하는 한. 눈은 눈을, 재즈는 모두. ;-) –

0

변경 해.

이벤트 버블 링을 확인하십시오 : 그것은 다르다 IE와 파이어 폭스하지만 여전히 지역 : JQuery와 기능 것을 www.quirksmode.org/js/events_order.html

관련 문제