2010-05-03 4 views
3

나는 onclick 이벤트를 가지고, 그리고 그 안에있다.
체크 상자를 클릭하면 div-onclick 이벤트가 실행되지 않습니다. 체크 상자에 onclick을 게시 할 필요없이 화재가 발생합니다.확인란 onclick 이벤트를 부모 onclick에 전달하는 방법은 무엇입니까?

<div id="id-tag" onclick="do()"> 
    <span>text</span> 
    <img src="pic.jpg" /> 
    <input type="checkbox" name="mycheck" /> 
</div> 

나는 div-id 태그를 알고 있지만 이상적으로는 체크 박스 안에 지정하지 않는 것이 좋습니다. 체크 박스에 다른 함수 호출을 사용

onclick="run_parent_onclick()" 

처럼, 부모는 내가 찾고 있어요되지 것입니다 전화 온 클릭하지만이

onclick="this.parent.click()" 

답변

1

당신은 입력의 OnClick에서 수동 사업부의 클릭 이벤트를 발생 수 :

<input type="checkbox" name="mycheck" onclick="this.parentNode.click()" /> 

또는

<input type="checkbox" name="mycheck" onclick="document.getElementById('id-tag').click()" /> 
+0

두 가지 모두 작동하지만 확인란이 비활성화되어 있지 않고 div onclick 함수가 취소 될 수 있으므로 체크 박스를 체크하지 않은 상태에서 상자를 체크하고 기능을 취소 할 수 있으므로 체크 상태를 제어 할 수 없도록 내 작업을 수행하고 있습니다 . 나는 이것을 방지하기 위해 뭔가 다른 것을 생각해야한다. – Kim

+0

DOM'.click()'은 Safari의 일부 요소에서만 작동한다는 점에 유의하십시오. –

1

사용하여 addEventListener 좋아 (검증되지 않은)입니다 :

function do(e) { ... } 
document.getElementById('id-tag').addEventListener('click', do, true); 

"true"는 이벤트 캡처를 만듭니다.

+1

어떻게 그 부모 DIV의 온 클릭 액션에있는 확인란 온 클릭 이벤트를 결합 하는가? 또한 나는 수천 개의 그러한 div를 가지고 있는데, 왜 나는 "global"을 내 테스트되지 않은 예제로 찾고있다. – Kim

관련 문제