이 질문은 항상 초보자들을 당황하게 했습니다. 먼저 HTML에서 js가 어디에 배치될 수 있는지, 즉 헤드와 바디에 배치되는지 이해하세요. 대부분의 사람들은 그것을 머리에 넣습니다. 배울때 헷갈리게 따라하고 머리속에 집어넣었는데 왜일까요? 오늘은 이 두 곳의 차이점에 대해 이야기해 보겠습니다.
먼저 HTML 코드를 살펴보세요.
;meta http-equiv="content-type" content="text/html;charset=utf-8">
까지 HTML을 실행하면 test.js 파일이 들어갑니다. 이전 문장은 실행되지 않습니다. 즉, 함수로 래핑된 문장은 실행되지 않습니다. 페이지로 이동하여 요소 ID가 btn인 요소를 가져옵니다. 하지만 현재 HTML 페이지가 로드되지 않았습니다. ID가 btn인 요소를 가져오는 것은 확실히 불가능합니다. 오류가 보고됩니다. 이때 어떤 분이 다음과 같은 코드로 변경할 수 있다고 하더군요.
코드를 복사하세요
코드는 다음과 같습니다. 🎜>
결과는 그림과 같이 페이지가 로딩되고, 버튼을 눌러도 아무런 반응이 없습니다. js 코드를 다음과 같이 변경합니다.
코드를 복사합니다.
코드는 다음과 같습니다.
var test=function( ){
document.getElementById("btn").onclick=test()
페이지가 로드되면 여전히 위와 같습니다. 버튼을 클릭하면 버튼을 눌렀을 때 함수의 반환 값이 실행되었음을 나타내는 "aaaa" 내용의 상자가 나타납니다. 클릭됩니다. 즉, 괄호를 추가하면 이벤트가 발생하지 않아도 함수가 실행됩니다. 이벤트가 트리거될 때 실행되는 함수의 반환 값입니다. 괄호를 포함하지 않으면 이벤트가 발생한 경우에만 함수가 실행됩니다.
Html 이벤트 트리거, 어떤 내용을 쓸 수 있나요?
•예를 들어 onclick="";큰따옴표 안에 쓸 수 있는 것은 무엇인가요? 일반적으로 onclick="test();"와 같은 함수를 작성할 수 있습니다. 이 외에 또 무엇을 쓸 수 있나요? 이 세미콜론을 생략할 수 있나요?
•위의 js 코드를 보면 모든 줄에 세미콜론이 있습니다. 세미콜론의 목적은 명령문을 난독화하는 것입니다. 이는 onclick에서 js 코드를 작성할 수 있음을 의미합니다. 다음과 같이 시도해 보세요.
코드 복사
코드는 다음과 같습니다.