다음 코드가 있습니다. 버튼의 onclick 속성에 함수를 설정하지 않아도 click 이벤트가 발생하는 이유를 파악할 수 없었습니다. 버튼에 설정되어 있지 않아도 "onclick"함수가 호출됩니다.
답변
var x = 0;
var onclick = function() {
console.log("x = " + ++x);
};
<button type="button" onclick="">Click</button>
window
재산
onclick
로 변환 전역 변수
onclick
을 설정합니다. 당신이 직접 설정하는 것처럼 이것은 기본적으로 동일합니다
window.onclick = function() {
console.log("x = " + ++x);
};
을 그리고 당신은 전체 window
개체에 대한 클릭 이벤트를 설정하기 때문에, 그것은 (버튼 클릭에 있지만, 문서 내에서 아무것도에 클릭 할뿐만 아니라 실행됩니다 이벤트 전파가 중지되지 않는 한).
[* event.stopPropragation *] (https://developer.mozilla.org/en/docs/Web/API/Event/stopPropagation)은 청취자를 지나서 멈추고 청취자에게 도달하는 것을 멈추지 않습니다. 리스너로부터 만 호출 될 수 있기 때문에 먼저 리스너에 도달해야합니다. 따라서 "* 미리 이벤트 청취가 다른 청취자에 의해 중지되지 않는 한 *". ;-) – RobG
'var'로 "정의"해도? 그거 알아두면 좋을거야. 나는 OP와 같은 실수를 할 수 있었다고 생각한다! –
@MrLister이 경우 우리는 전역 범위에 있으므로'var'는 전역 변수를 설정합니다. 이 코드가 함수 안에 있다면, 당연히'window.onclick'을 설정하지 않을 것입니다. – dfsq
@ dfsq가 언급 한대로 var onclick=
을 수행하면 window.onclick
이 생성됩니다. 비슷한 메모에서 :
var onerror = function() {
console.log("ERROR HAPPENED!");
};
<button type="button" onclick="ThisFunctionIsNotDefined()">Click</button>
- 1. PHP가 설정되어 있지 않아도 isset 내부에 코드가로드됩니까?
- 2. 사용 편리 성 : OK/DONE 버튼에 포커스가 설정되어 있지 않아도 ENTER 키를 눌러 마법사 양식을 닫아야합니까?
- 3. GooglePlayServicesClient on 네트워크에 연결되어 있지 않아도 연결된 콜백이 호출됩니다.
- 4. 키가 설정되어 있지 않아도 해시에 키가 포함되어 있음
- 5. 암호와 확인 중 하나가 설정되어 있지 않아도 사실입니다.
- 6. 비동기 함수를 사용하지 않아도 호출됩니다.
- 7. 헤더가 설정되어 있지 않습니다.
- 8. 데이터베이스가 설정되어 있지 않음
- 9. iphone : button corner radius가 설정되어 있지 않습니다.
- 10. mySQL이 비어 있지 않아도 반환합니다.
- 11. PHP 쿠키가 설정되어 있지 않습니다.
- 12. PHP 세션이 설정되어 있지 않습니다.
- 13. 백본보기 속성이 설정되어 있지 않습니다.
- 14. 스타일이 IE10에 설정되어 있지 않습니다.
- 15. PHP 쿠키가 설정되어 있지 않습니다.
- 16. 어댑터가 목록보기에 설정되어 있지 않습니다.
- 17. 쿠키가 PHP로 설정되어 있지 않음
- 18. 초점은 UserControl을 WPF에 설정되어 있지
- 19. 시스템 경로가 설정되어 있지 않습니다.
- 20. 부울이 생성자에 설정되어 있지 않습니다.
- 21. Hapijs 쿠키가 설정되어 있지 않음
- 22. HttpWebRequest 쿠키가 설정되어 있지 않습니다.
- 23. UIPresentModalViewController보기 알파가 설정되어 있지 않습니다.
- 24. Holo light 테마가 버튼으로 설정되어 있지 않습니다.
- 25. localhost에는 yii2 쿠키가 설정되어 있지만 라이브 서버에는 설정되어 있지 않습니다.
- 26. IE 조건문에 조건이 나와 있지 않아도 표시됩니다.
- 27. 전화가 켜져 있지 않아도 성공적으로 응답합니까?
- 28. 대화 상자에 포커스가 있지 않아도 신호가 발생합니다.
- 29. 함수가 정의되어 있지 않아도 함수가 정의되지 않았습니다.
- 30. NSNotification 처리기 메서드 내에서 코드가 실행되지 않아도 메서드가 제대로 호출됩니다.
나는 버튼을 누를 수 있지만 아무 것도 발생하지 않습니다. – suleiman
@suleiman 브라우저 콘솔을 확인하십시오. barun var onclick은 window.onclick과 동일합니다. – Ali