>웹 프론트엔드 >JS 튜토리얼 >Javascript 동적 바인딩 events_javascript 기술을 위한 간단한 구현 코드

Javascript 동적 바인딩 events_javascript 기술을 위한 간단한 구현 코드

WBOY
WBOY원래의
2016-05-16 18:13:231120검색

다음은 해당 페이지의 DOM 구조입니다.

코드 복사 코드는 다음과 같습니다.


  • 1

  • 2

  • 3
  • ;li>Four 다음과 같습니다:


    //ID를 기반으로 객체 가져오기
function id(v) { return document.getElementById(v) }

//태그를 기반으로 객체 가져오기//1,2,3,4가 나타날 것으로 예상됩니다.
//결과 항상 5
alert("(i 1) "항목"을 클릭했습니다);
}
}
}


위 현상은 왜 발생하나요? 그 이유는 " for 에 바인딩된 이벤트가 즉시 실행되지 않기 때문입니다." 수정된 코드는 다음과 같습니다.




코드 복사


코드는 다음과 같습니다.


// ID를 기준으로 객체 가져오기
function id(v) { return document.getElementById(v) }
//태그에 따라 객체 가져오기
function tag(element, t); return element.getElementsByTagName(t) }
window.onload = function() { //테스트 중인 모든 li 객체 가져오기var li = tag(id("test"), " li"); //루프를 사용하여 마우스 클릭 이벤트를 바인딩합니다 for(var i=0; i(function() {
var t = i
li [i].onclick = function() {
alert("" t "번째 "항목"을 클릭했습니다);
}
})();
}
}


코드를 테스트하면 모든 것이 정상입니다. 일반적으로 루프 변수 i를 onclick 이벤트에 해당하는 핸들러 함수에 전달합니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.