메뉴 건너뛰기

관리자2019.11.25 07:51

문제의 원인은 다음 라인을 수정해야 합니다.
document.write("onclick=\"" + func(this) + "\">");
----> document.write("onclick=\"" + "func(this)" + "\">");

왜냐하면 "onclick=\"" + func(this) 의 의미는 "onclick=" 문자열에 func(this)를 호출하고 그 리턴값을 연결한다는 뜻입니다.
func(this)를 호출하면 아무 것도 리턴하지 않습니다. 그러므로
문자열의 연결 결과
onclick="undefined"가 되는 겁니다.
그러므로 질문자의 코드로 하면, click 리스너가 제대로 붙지 않게 되지요.

다른 간단한 예를 들어 설명해봅시다.
function f() {
return "hello";
}
var text = "a=" + f(); 의 문장은 문자열 a에 f()을 호출하여 리턴한 결과 "hello"를 연결한 결과 text가 "a=hello"가 되는 겁니다.
지금 질문자가 text를 "a=f()"로 만들고자 한다면
var text = "a=" + "f()";로 해야 합니다.

그럼....

파일 첨부

여기에 파일을 끌어 놓거나 파일 첨부 버튼을 클릭하세요.

파일 크기 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )
위로