Haileyang
286
2021-09-10 13:24:28
7
153

자바스크립트 if(clicked)에서 else 실행안되는 이유


부모와 자식에 둘 다 클릭 이벤트가 있을 때, e.target의 else 조건의 이벤트는 잘 실행되는데 if(clicked)에서 else에서는 이벤트 실행이 안되는데 이유가 궁금합니다. .. 혹시 이벤트 버블링일까싶어서. e.stopPropagtion()하고 e.defaultPrevet인가 이 두 개를 다 써봤는데도 clicked 조건절의 else 구문은 실행이 안되네요.. ㅎㅎ


  // 클릭 대상이 more 영역일 때 교재보기 버튼 보이기
                // if (e.target.classList.contains("more-wrap") || e.target.classList.contains("three-dots")) {
                //     moreBtn.classList.toggle("on");

                // } else { // 클릭 대상이 more 영역이 아닐 때 모달 보여주기
                //     moreBtn.classList.remove("on");
                //     prior_alert.classList.add("show");
                // }


 if (more.clicked = true) {
                    moreBtn.classList.toggle("on");
                    if (e.target.classList.contains("preview-book")) {
                        preview_sample.classList.add("show");
                        prior_alert.classList.remove("show");
                        
                    }
                    
                }else { 
                    // e.stopPropagation()
                    prior_alert.classList.add("show");
                }


0
  • 답변 7

  • onimusha
    9k
    2021-09-10 13:26:19 작성 2021-09-10 13:26:38 수정됨
    more.clicked = true 이러면 계속 true 로 할당되서 계속 참일듯 싶은데요.. (==)
  • 협군
    6k
    2021-09-10 13:37:06

    == 등호

  • Haileyang
    286
    2021-09-10 13:41:39

    == 이렇게하면 else 실행이되는데 if 문절이 실행이 안되서요 ㅎㅎ


  • 20170923
    2k
    2021-09-10 13:42:26
    저런 실수들이 잘 안 보이는 경우가 있더라구요 ㅠㅠ 담부턴 한번 더 꼼꼼히 확인해봐요
  • 마린_7
    106
    2021-09-10 14:16:38

    alert(more.clicked );

    값에 뭐가 오는지 먼저 확인필요하겠네요

  • 협군
    6k
    2021-09-10 15:01:49

    확인하실 때는 alert 같은 것 보다 콘솔로그로

    console.log(more.clicked);


  • Haileyang
    286
    2021-09-10 15:15:41

    음 undefine이라고 뜨네요.. 원인을 찾아봐야겠네요 ㅎㅎ 왜 undefine인지 .. 다들 너무 감사합니다 ㅜ


  • 로그인을 하시면 답변을 등록할 수 있습니다.