1
저는 Internet Explorer에서 실행되는 레거시 응용 프로그램에서 흥미로운 코드를 실행했습니다. 다음을 고려해보십시오.테이블 행의 OnClick 이벤트가 모든 포함 된 요소로 전파됩니까?
<script type="text/javascript">
function selectRow()
{
var src = window.event.srcElement; // Array of OPTION?!
var rowIndex = src.rowIndex; // Undefined for an OPTION element
highlightRow(rowIndex);
}
</script>
<table>
<tr onclick="selectRow();">
<td>
<select id="foo">
<option value="baz">baz</option>
</select>
</td>
</tr>
</table>
여기 내가 왜 잘못되었습니다. 사용자가 SELECT 소자로부터 항목을 선택하면, onclick 이벤트 소성하고 따르는 것이 참인
- '이'윈도우 '
- 'Window.event.srcElement '로 평가는 평가 'OPTION'요소의 배열
- 이벤트 처리기 내에서 옵션의 부모 요소에 도달하는 방법이없는 것처럼 보입니다.
클릭 한 테이블 행의 색인을 가져올 수 있어야합니다. (위의 예제에서 볼 수 있듯이, 기존 코드를 잘못 this.rowIndex
테이블의 현재 행 지수로 평가한다고 가정합니다.) 나는 범인이 여기 버블 링 이벤트가 있으리라 믿고있어
.
이 문제를 가장 정확한 방식으로 수정하기위한 제안이 있습니다. 이벤트가 행에 묶여있는 방식 일 수 있다는 것이 나에게 발생하지만, (이벤트가 여전히 거품이 나기 때문에) 나는 의심 스럽다.
는 (우리의 회사는 IE는. 메신저를 쏘지 마십시오 지원하기 때문에 FWIW, 내가 다른 브라우저에서이 시도하지 않았습니다.)