메뉴 건너뛰기

에러가 난 코드

<!DOCTYPE html>

<html>

<head>

    <title>setinterval</title>

    <style>

        div {

            background: yellowgreen;

            width: 200px;

        }

    </style>

    <script>

        let state = true;

        function init() {

            var div = document.getElementById("div");

            div.addEventListener("click", click);

            var Clock = setInterval("get_time()", 1000);//<<에서 Clock을 var로 선언하여 전역변수화 시켰으나

        }

 

        function click() {

            state = !state;

            

            if (state == true) {

                Clock = setInterval("get_time()", 1000);

                div.style.color = "black";

 

            } else {

                div.style.color = "gray";

                clearInterval(Clock); //<<전역변수인 Clock을 읽어오지 못함

            }

 

        }

        function get_time() {

            let date = new Date();

            let text = date.toLocaleString();

            div.innerHTML = text;

        }

  

   </script>

</head>

<body onload="init()">

    <h3>div 태그에 시계 만들기</h3>

    <hr>

    <div id="div">  </div>

</body>

</html>

 

-----

1.전역변수로 선언한 변수를 다른 함수에서 읽어오지 못하는 점에 관한 의문

작동이 되는 코드

   <script>

        let state = true;

        let Clock = null;

        function init() {

            var div = document.getElementById("div");

            click();

            div.addEventListener("click", click);

 

        }

 

        function click() {

            if (state == true) {

                Clock = setInterval("get_time()", 1000);

                div.style.color = "black";

 

            } else {

                div.style.color = "gray";

                clearInterval(Clock);

            }

            state = !state;

        }

        function get_time() {

            let date = new Date();

            let text = date.toLocaleString();

            div.innerHTML = text;

        }

    </script>

 

 

?
  • ?
    관리자 2019.12.05 11:07
    function init() {
    var div = document.getElementById("div");

    에서 만든 div 변수는 init() 함수 외에서는 접근하지 못합니다. 아래와 같이 전역변수로 선언해야 합니다.
    var div;
    function init() {
    div = document.getElementById("div");
    ..
    }

    div 외에 여러 함수에 사용해야만 하는 변수들을 이렇게 선언해보세요.

QnA

공부하면서 궁금했던 것을 질문해보세요.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 읽어주세요! 연습문제 및 실습문제 정답 공개에 관한 공지입니다. file 관리자 2017.06.20 18267
203 8장 실습 문제 5번 3 아리 2019.12.04 214
» 10장 실습문제 6번 전역변수 설정에 관한 질문 1 제발요 2019.12.04 632
201 11장 실습문제 6번 arc()문제 제발요 2019.12.06 1093
200 한글 타이틀이 깨져 보입니다. 1 안스가리오 2020.01.06 116
199 61 page 실습문제 1번 오류찾기 2 궁금이 2020.02.15 1757
198 html에 css작성할때 2 궁금이 2020.03.03 353
197 1장 test1, 2, 3 파일 2 열공중 2020.03.07 542
196 71page 1 아리송 2020.03.07 77
195 7장의 8번문제 1 궁금 2020.03.20 247
194 예제 2-21 1 Daisy 2020.03.28 237
193 한글html 1 키보드 향기 2020.03.29 922
192 2장 오픈 챌린지 웹페이지 음악연주 질문있습니다. 1 초보자 2020.03.29 195
191 ; 에 대해 질문드립니다 1 입문한 사람 2020.04.01 85
190 코드 잘못된 부분을 봐주시면 정말 감사하겠습니다 1 file 입문한 사람 2020.04.01 607
189 div 와 pre 중에서 어떤 게 더 상위에 위치하나요? 1 file 입문한사람 2020.04.03 751
188 목록을 한줄로 나란하게 만드는 법 질문드립니다 3 file 입문한 사람 2020.04.04 260
187 표와 div span 4 키보드 향기 2020.04.05 109
186 선생님 정말 고맙습니다 재질문도 드리고 싶습니다 file 입문한 사람 2020.04.07 137
185 SRC와 SRDOC의 차이를 여쭙고 싶습니다. 입문한 사람 2020.04.07 48
184 따옴표를 4중 5중으로 사용하는 방법에 대해 여쭙고 싶습니다. 입문한 사람 2020.04.07 40
목록
Board Pagination Prev 1 ... 6 7 8 9 10 11 12 13 14 15 ... 21 Next
/ 21
위로