function animate() { var div = document.getElementById('demo'); div.style.left = "200px"; div.style.color = "red"; }
#demo { position: absolute; }
<p>
window.animate // global function Element.prototype.animate // element's own method<p>DOM 사양에 따르면 전역 이벤트 핸들러 환경은 이벤트 처리 중에 요소의 범위를 숨깁니다. 따라서 요소의 'animate' 방법은 전역 'animate' 기능보다 우선합니다.
10. Let the current event handler value be the result of the following steps: ... 4. Let the target environment be the lexical environment scope. ... 6. If the element is non-null, then a. Let the target environment be the result of NewObjectEnvironment(the element, the target environment).<p>이를 수정하려면 다음과 같은 여러 접근 방식을 사용할 수 있습니다.
function animate__() { var div = document.getElementById('demo'); div.style.left = "200px"; div.style.color = "red"; }
document.getElementById('demo').addEventListener('click', animate.bind(document.getElementById('demo')));
위 내용은 내 'animate' 기능이 IE에서는 작동하지만 Chrome에서는 작동하지 않는 이유: JavaScript 섀도잉 문제?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!