jquery-2.2.4.min.js 를 사용하여 퍼블리싱을 하고 있는데 콘솔 창에 "Uncaught TypeError: Cannot read property 'defaultView' of undefined" 란 문구가 아래와 같이 떴다.
내가 만든 함수 중 onclick으로 함수를 호출 했는데 해당 함수의 매개변수를 'this'로 호출하여 문제가 생겼던 것이다.
아래 화면을 참고하자.
(직접 짠 코드입니다. 사용할 경우 출처를 밝혀주세요!)
<!-- 1 -->
<div class="m-btn-menu dis-table-cell vertical-m" onclick="clickSlideDown('this')">
<span class="line"></span>
<span class="line"></span>
<span class="line mb0"></span>
</div>
<!-- 2 -->
<a href="javascript:clickSlideUp('this');" class="m-btn-close">
<span class="diagonal-left"></span>
<span class="diagonal-right"></span>
</a>
1번과 2번을 실행했을 때 2번은 정상 작동하나 1번으로 인해 콘솔에 에러 메세지가 뜬다.
디버깅 결과, 1번에서 class 가 세개 이상이 있는데, onclick=""으로 함수호출을 할때 매개변수로 'this'를 사용했기에 셋 중 어느 클래스를 가리키고 있는지 정확히 언급이 되지 않았기 때문이다.
2번처럼 하나의 클래스(또는 아이디)를 갖는다면 this로 매개변수를 정의해도 정상으로 작동한다.
따라서 this 대신 정확한 매개변수를 사용하자.
(직접 짠 코드입니다. 사용할 경우 출처를 밝혀주세요!)
<!-- 1 -->
<div class="m-btn-menu dis-table-cell vertical-m" onclick="clickSlideDown('.m-btn-menu')">
<span class="line"></span>
<span class="line"></span>
<span class="line mb0"></span>
</div>
<!-- 2 -->
<a href="javascript:clickSlideUp('.m-btn-close');" class="m-btn-close">
<span class="diagonal-left"></span>
<span class="diagonal-right"></span>
</a>
'DEVELOP' 카테고리의 다른 글
[javascript & jQuery] 이벤트 시 해당 자동 너비값 다시 계산하기 (0) | 2019.03.22 |
---|---|
[php] 로컬 및 서버 환경 셋팅하기 (0) | 2019.01.08 |
[javascript & jQuery] jQuery 버전 차이점 (0) | 2018.12.18 |
[javascript & jQuery] $(document).on 으로 동적 이벤트 걸기 (0) | 2018.12.15 |
[mysql] mysql 접속 명령어 (1) | 2018.12.15 |