2009-10-26 2 views
0

나는 이런 설정을 가지고 이벤트. 두 번째 div가 첫 번째 오버레이를 오버레이하기 때문입니다. 그러면 어떻게 첫 번째 이벤트가 취소되거나 중지 될 수 있습니까?JQuery와 이벤트에 도움

답변

4

체크 아웃 the jQuery docs에서 event.stopPropagation()

는 :

는 이벤트가 통지되는 모든 부모에게 핸들러를 방지 부모 요소에 이벤트의 버블 링을 중지합니다. 귀하의 경우에는

, 이것은 당신이, 가까운 클릭 이벤트로 사업부를 사용하려면 대신 입력 버튼을 사용하는 것이 괜찮 왜 확실하지 않다

$("#close").live("click", function(evt){ 
    evt.stopPropagation(); 
    closeTabs(); 
}); 
+3

+1 spot, 또한 return false는 stopPropagation 및 preventDefault (jQuery 이벤트 핸들러에서)입니다. – karim79

+0

작동하지 않았습니다. 그것은 여전히 ​​changeTabs() 함수를 실행했습니다 – ngreenwood6

0

이 작동 할 수 있습니다 :

$("#container:not(#close)").live("click",function(){ 
    changeTabs(); 
}); 

$("#close").live("click", function(){ 
    closeTabs(); 
}); 

not selecto R을 사용.

0

처럼 보일 수 있습니다?

<div id="container"> 
     <input type="button" id="close" value="Close"/> 
</div> 

$("#container").live("click",function(){ 
    changeTabs(); 
}); 

$("#close").live("click", function(){ 
    closeTabs(); 
    return false; 
}); 
+0

입력 버튼이 작동하지 않습니다. – ngreenwood6

-1

오케이 그래서 내가 사용했던 메소드는 closeTabs() 함수에서 작동했습니다. false를 반환했습니다. 그걸 고쳐 준 것처럼 보였습니다