저는 자바 스크립트에 다소 익숙하며 제 기능으로 어떤 일이 벌어지고 있는지 정확히 알 수는 없습니다.함수로 동적으로 자바 스크립트 이벤트 핸들러를 정의하는 방법
배경 : 내 스크립트는 요소에 "toggler"또는 "toggled"클래스를 할당하여 자동으로 링크하도록 설정되어 있으므로 토글 러를 선택/선택 취소하면 토글 됨이 표시/숨길 것입니다. 이 작업을 수행 할 수있는 라이브러리가 많이 있지만이 경우에는 사용할 수 없습니다.)
스크립트는 pageload에서 실행되고 "toggler"클래스가있는 요소를 검색 한 다음 그에 따라 onclick 처리기를 할당합니다.
function makeToggle() {
for (i=0;i<toggler.length;i++) {
toggler[i].onclick=function(){toggleSection(this,i)};
}
}
function toggleSection(obj,index) {
if (obj.checked==true) {
toggled[index].style.display="inline-block";
} else {
toggled[index].style.display="none";
}
}
"이것은" "인덱스"항상 대신 toggler 배열의 길이로 설정되어 제대로 전달하고에 적용된 어떤 체크 박스로 확인되지만 다음은 코드 내가 함께 문제가 발생의 비트입니다 증분되고있다. 예를 들어, 제 1 및 제 2 togglers '온 클릭은 다음과 같아야합니다
이onclick="toggleSection(this,0)"
onclick="toggleSection(this,1)"
그들은 실제로 (I 5 개 요소가 toggler로 정의 가정)에 설정되어 무엇입니까 : 나는 무엇에서
onclick="toggleSection(this,5)"
onclick="toggleSection(this,5)"
' 읽어 보았습니다. 범위가 문제이거나 기능이라고 부르는 방식이라고 생각합니다.하지만 아무 것도 발견하지 못했습니다.
모든 답변은 매우 도움이되었다. jbabey의 대답은 받아 들여지는 대답입니다. 설명의 자리에서 실제로 일어나는 일에 대해 좀 더 깊이 들어가기 때문입니다.폐쇄를 이해하는 데 도움이되는 위대한 링크 – ctshiner