• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 JavaScript, TS 게시판 레벨2 이벤트 버블링 관련 예제 질문

레벨2 이벤트 버블링 관련 예제 질문

7 글 보임 - 1 에서 7 까지 (총 7 중에서)
  • 글쓴이
  • #67248

    이예나
    참가자
    안녕하세요 몇 시간동안 혼자 해결해보려고 하다가 도저히 안 돼서 질문 남깁니다
    바깥 영역 클릭했을 때 모달창이 닫혀야 하는데 전혀 작동이 되지 않습니다
    검사창에서도 어떤 오류나 변화가 전혀 없고요
    왜 안 되는 건가요???????
    
    
    
    #67274

    codingapple
    키 마스터
    .black-bg 클래스명에 display : none도 추가합시다
    #67351

    이예나
    참가자
    <div class="black-bg">
            <div class="main-bg">
                <h4>Shirts on sale</h4>
                <button id="login" class="btn-show btn-danger">login</button>
            </div>
            <div class="white-bg">
              <h4>로그인하세요</h4>
                <form action="success.html">
                    <div class="my-3">
                        <input type="text" id="email" class="form-control">
                    </div>
                    <div class="my-3">
                        <input type="password" id="pw" class="form-control">
                    </div>
                    <button type="submit" class="btn btn-primary">전송</button>
                    <button type="button" class="btn btn-danger" id="close">닫기</button>
                </form> 
            </div>
        </div>
    
    .black-bg 클래스명에 display : none을 추가하게 되면 감싸고 있던 것들이 모두 none 되어서 보이지 않습니다..
    
    #67402

    codingapple
    키 마스터
    <div class="black-bg"> 박스는 white-bg 박스 바로 바깥으로 옮깁시다
    #67429

    이예나
    참가자
    선생님... 그렇게 해도 전혀 작동이 되지 않는데 어떡하죠 로그인 창을 눌러도 모달창도 뜨지 않습니다
    혹시 몰라 전체 코드 다시 첨부합니다
    
    
    <body>
        <div class="main-bg">
            <h4>Shirts on sale</h4>
            <button id="login" class="btn-show btn-danger">login</button>
        </div>
        <div class="black-bg">
            <div class="white-bg">
              <h4>로그인하세요</h4>
                <form action="success.html">
                    <div class="my-3">
                        <input type="text" id="email" class="form-control">
                    </div>
                    <div class="my-3">
                        <input type="password" id="pw" class="form-control">
                    </div>
                    <button type="submit" class="btn btn-primary">전송</button>
                    <button type="button" class="btn btn-danger" id="close">닫기</button>
                </form> 
            </div>
        </div>
        <script>
            $('.btn-show').on('click', function(){
                $('.white-bg').addClass('show');
            })
            $('#close').on('click', function(){
                $('.white-bg').removeClass('show');
            })
            $('.black-bg').on('click', function(){
                $('.white-bg').removeClass('show');
            })
            $('form').on('submit', function(e){
                
                const email = document.getElementById('email').value;
                const pw = document.getElementById('pw').value;
                if(email == '' || (/\S+@\S+\.\S+/).test(email) == false){
                    e.preventDefault();
                    alert('write your id');
                } else if(pw == ''){
                    e.preventDefault();
                    alert('write your pw');
                } else if(pw.length < 6){
                    e.preventDefault();
                    alert('write in down in more 6 letters');
                } else if((/[A-Z]/).test(pw) == false){
                    e.preventDefault();
                    alert('Must contain at least one uppercase letter')
                }
            })
        </script>
    
    </body>
    
    
    
    ---------------------------------
    css 파일
    
    
    
    body{
        margin: 0;
        padding: 0;
    }
    .black-bg {
        width : 100%;
        height : 100%;
        box-sizing: border-box;
        position : fixed;
        background-color: rgba(0, 0, 0, 0.3);
        z-index : 5;
        padding: 30px;
        display: none;
    }
    .white-bg {
        background: white;
        border-radius: 5px;
        padding: 30px;
        width: 300px;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        display: none;
    }
    .show{
        display: block;
    }
    
    
    
    
     
    #67449

    codingapple
    키 마스터
    .white-bg에 있는 display none은 지우고
    자바스크립트로 .white-bg말고 .black-bg만 조절합시다
    #67745

    이예나
    참가자
    black-bg가 위에 안 덮여서 바디에서 main-bg를 black-bg 밑으로 내리니까 되네요 감사합니다!
7 글 보임 - 1 에서 7 까지 (총 7 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠