26. 이벤트

2024. 11. 6. 16:12자바스크립트(Javascript)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>이벤트</title>
    <script>
        let btn //btn 전역으로 다 쓸수 있게 빼준다
        window.onload = function(){
            const text = document.getElementById('text')
            // <p id="text"></p>
            text.innerHTML = "<b style='color:deeppink;'>HTML 문서가 로드되었습니다.</b>"
            btn = document.getElementById('eventBtn')
            btn.addEventListener('click', clickBtn)
            btn.addEventListener('mouseover', mouseOverBtn)
            btn.addEventListener('mouseout', mouseOutBtn)
            const delbtn = document.getElementById('delBtn')
            delbtn.addEventListener('click', delEvent)
            const btn1 = document.getElementById('btn1')
            const btn2 = document.getElementById('btn2')
            const btn3 = document.getElementById('btn3')
            btn1.addEventListener('click', buttonClick)
            btn2.addEventListener('click', buttonClick)
            btn3.addEventListener('click', (e) => {
                console.log('버튼 3이 눌렸어요!')
            })
        }

        function changeText(el){
            // console.log(el)
            el.innerHTML = "<b style='color:deepskyblue;'>문자열이 변경되었습니다.</b>"
        }

        // e: 이벤트 객체
        function clickBtn(e){
            console.log(e)
            console.log(e.target)
            console.log(e.target.id)
            console.log(e.target.value)
            console.log(e.target.type)
            document.getElementById('text').innerHTML = '<b>버튼을 클릭했어요!</b>'
        }

        function mouseOverBtn(){
            document.getElementById('text').innerHTML = '<b>버튼위에 커서가 올라갔어요!</b>'
        }

        function mouseOutBtn(){
            document.getElementById('text').innerHTML = '<b>버튼 밖으로 커서가 나갔어요!</b>'
        }

        function buttonClick(e){
            switch(e.target.id){
                case 'btn1':
                    console.log('버튼 1이 눌렸어요!')
                    break
                case 'btn2':
                    console.log('버튼 2가 눌렸어요!')
                    break
            }
        }
        
        function delEvent(){
            btn.removeEventListener('click', clickBtn)
            btn.removeEventListener('mouseover', mouseOverBtn)
            btn.removeEventListener('mouseout', mouseOutBtn)
            document.getElementById('text').innerHTML = '<b>이벤트 핸들러가 삭제됐어요!</b>'
        }
    </script>
</head>
<body>
    <p id="text"></p>
    <p id="p" onclick="changeText(this)">문자열을 클릭하세요</p>
    <hr>
    <p><button id="eventBtn" value="이벤트 버튼">이벤트 버튼</button> <button id="delBtn">이벤트 삭제 버튼</button></p>
    <hr>
    <button type="button" id="btn1">버튼1</button>
    <button type="button" id="btn2">버튼2</button>
    <button type="button" id="btn3">버튼3</button>
</body>
</html>
728x90
LIST

'자바스크립트(Javascript)' 카테고리의 다른 글

25. 주민번호 유효성 검사  (0) 2024.11.06
25. DOM  (0) 2024.11.04
24. Navigator 객체  (0) 2024.11.04
23. location history 객체  (0) 2024.11.04
22. 시계만들기  (0) 2024.11.04