2012-07-23 4 views
-1

div 및 버튼이있는 페이지가 있습니다. 나는 그들 모두에게 onClick 이벤트를 추가했다. 이제 div의 버튼을 클릭하면 div의 onClick도 실행됩니다. 내가 이것을 피할 수있는 방법이 있습니까? 여러 OnClick JQuery 이벤트 실행

은 (당신이 이벤트 버블 링을 사용하는 경우), 당신이 그것을 수정해야 e.stopPropagation()를 넣을 수 있습니다 링크 요소에 대한 리스너에서,

+0

수정이! 우리가 당신을 도울 수있는 코드를 볼 수 있다고 생각합니까? 당신은 기본적으로 "나는 문제가있다"고 말했다. – jeschafe

+1

** 이벤트 전파 **에 문제가있는 것 같습니다. – Scotty

+0

[자녀 발사 부모 클릭 이벤트로부터 클릭 금지] (http://stackoverflow.com/questions/6929198/prevent-click-from-child-firing-parent-click-event) –

답변

2

를 호출하여 onclick 이벤트에 매개 변수로 이벤트를 전달하고

를 호출해야
event.stopPropagation(); 
event.preventDefault(); 

귀하의 onclick 이벤트 할당해야한다 :

당신의 클릭 핸들러에서
$(button).click(function(event) { 
    // script here 
    event.stopPropagation(); 
    event.preventDefault(); 
}); 
0

을 주셔서 감사합니다.

jQuery를 사용하지 않는 경우 매개 변수를 addEventListener()으로 설정하고 Falseinfo - MDN으로 설정해야합니다. 당신은 당신의 이벤트가 DOM을 통해 움직이는 방향 (당신이 버블 링하기를 원한다)을 알고 있는지 확인하기를 원할 것입니다.

0

버튼 onClick 이벤트가 Div에 버블 링되지 않도록해야합니다. 당신이 모든 당신 논리를 수행 한 후에 그래서 기본적으로 버튼에 대한 온 클릭 함수의 끝에서, 당신이 시도 event.stopPropagation()

1

당신은 예를 들어, "인 stopPropagation"를 사용 할 수 있습니다 :

,

"preventDefault"라는 브라우저와 관련하여 읽을 수있는 관련 기능이 있습니다.이 기능을 사용하면 브라우저가 자동으로 수행하는 작업 (예 : 제출 버튼을 클릭하면

도 참조) 페이지를 제출 https://developer.mozilla.org/en/DOM/event.stopPropagation http://api.jquery.com/event.stopPropagation/ What's the effect of adding 'return false' to a click event listener? http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/

0

위 작업 중 어느 것도, 시도하지 않는 경우 :

$("button").click(function(e) { 
    e.stopImmediatePropagation(); 
});