자바스크립트 클릭이벤트 질문입니다.

자바스크립트 클릭이벤트 질문입니다.

QA

자바스크립트 클릭이벤트 질문입니다.

본문

먼저 코드를 보여드리면,


<ul class="menu-wrap">
   <li>menu01</li>
   <li>menu02</li>
   <li>menu03</li>
   <li><a href="https://도메인.co.kr/areasearch/제주">제주</a></li>
</ul>
<script type="text/javascript">
const menuWrap = document.querySelector('.menu-wrap');
 
        function select(ulEl, liEl){
            Array.from(ulEl.children).forEach(
                v => v.classList.remove('selected')
            )
            if(liEl) liEl.classList.add('selected');
        }
 
        menuWrap.addEventListener('click', e => {
            const selected = e.target;
            select(menuWrap, selected);
        })
</script>

 

이런 코드를 가지고와서 사용할려고하는데

li태그에는 잘 작동합니다. 클릭하면 selected 클래스가 붙어서 작동하고 하는데

마지막에 a태그를 넣은 li는 작동이 안됩니다..

li영역부분을 클릭하면되는데 a태크를 클릭하면 페이지 이동만 되고 selected 클래스도 안붙고 작동이 안됩니다ㅠㅠ 왜 그러는지 아시는 분 계실까요ㅠ

832939276_1643931813.5938.png

이 질문에 댓글 쓰기 :

답변 2

글만으로는 설명이 힘들어 아래 설명을 이해 못 하실 듯 합니다만 도움이 되고자 답변을 달겠습니다.


저 코드는 javascript로 메뉴 클릭 시 페이지 이동 없이 tab을 활성화/비활성화 코드이지,

페이지 이동 후 자동으로 해당 메뉴를 활성화 해주는 코드가 아닙니다.

 

저런 javascript 는 화면안에서  페이지 이동없이 tab 별로 특정 content 를 보여주기 위해서 사용합니다.

 

원하 시는 코드가 아닐 것 입니다.

페이지 이동 후 해당 메뉴가 활성화 표시되기 위해선 php 코드나, 좀 더 고도화된 javascript 가 필요합니다.

 

 

페이지 안에서가 아닌 페이지 이동 후 원하는 버튼에 원하는 css 를 먹이려면

클래스명을 php 겟변수로 전송하거나 js 세션스토리지나 로컬스토리지로 전송하는 테크닉과

전송받은 정보를 구현하는 테크닉이 필요합니다만...

그런 방식을 예제로 구성하여 답변글로 올리기에는 분량과 시간소모 문제 때문에 대답하기가 어렵습니다.^^

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

회원로그인

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