자바스크립트 이벤트리스너 루프?

자바스크립트 이벤트리스너 루프?

QA

자바스크립트 이벤트리스너 루프?

본문

아래와 같이 모달창이 열리고 닫기 버튼 누르면 닫히게 자바스크립트를 넣었습니다. 

모달이 열리는 것은 문제가 없는데, 모달 닫기할 때, 버튼을 클릭하면,

function closeDetailModal(index) 이 함수가 실행되게 해놧습니다. 

이 함수 내에서 console.log 등을 확인 해봐도 index 값을 받아오거나 , 다른 element를 선택한다거사 하는 것은 정상적으로 됩니다. 그런데, element 선택해서 display none 처리 하는게 안되네요. 

 

조언 좀 부탁드립니다. ㅠ

 


const designCode = document.querySelectorAll('.mmnco_tem_list_inner');
const designPreviewBnt = document.querySelectorAll('.mmnco_preview_bnt');
const designCodeModal = document.querySelector('#mmnco_decode_modal');
const decodeInfo = document.querySelectorAll('.mmnco_decode_info');
const closeDecoBnt = document.querySelectorAll('.mmnco_decode_info_close');
function openDetailModal(index) {
    designCodeModal.style.display = 'block';
    decodeInfo[index].style.display = 'block';
    document.querySelector('body').classList.add('scrol_hidden');
};
function closeDetailModal(index) {
    console.log(decodeInfo[index]);
    decodeInfo[index].style.display = 'none'; //이 부분이 실행이 안됩니다.
    designCodeModal.style.display = 'none'; //이 부분이 실행이 안됩니다.
    // document.querySelector('body').classList.remove('scrol_hidden');
}
for (let m = 0; m < designCode.length; m++) {
    
    (function () {
        designCode[m].addEventListener('click', function() { openDetailModal(m); } );
        closeDecoBnt[m].addEventListener('click', function() {
             closeDetailModal(m); //현재 이녀석이 문제
         });
        designPreviewBnt[m].addEventListener('click', function(e){ e.stopPropagation(); });
    }()); // immediate invocation
}

이 질문에 댓글 쓰기 :

답변 1

display = none 이 화면에 안보이려고 하시는 거죠?

동작하지 않는게 아니라 css 에의해 동작하지 않는것처럼 보이는게 아닐까 싶습니다.

 

해당 dom 을 확인해보세요

이상하네요. 그 함수 내에서는 자바스크립트로 스타일 변경이 하나도 안되네요. 클래스로 조정하려고도 해봤는데요. classList.add('active') 로 클래스 추가는 되는데, 또 classList.remove('active')는 안됩니다..ㅠ

답변을 작성하시기 전에 로그인 해주세요.
전체 935
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT