테스트 사이트 - 개발 중인 베타 버전입니다

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

코쟁히 3년 전 조회 3,666

먼저 코드를 보여드리면,

</p>

<p><ul class="menu-wrap">

   <li>menu01</li>

   <li>menu02</li>

   <li>menu03</li>

   <li><a href="<a href="https://도메인.co.kr/areasearch/제주">제주</a></li>" target="_blank" rel="noopener noreferrer">https://도메인.co.kr/areasearch/제주">제주</a></li></a>

</ul></p>

<p><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></p>

<p>

 

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

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

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

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

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
C
3년 전

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


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

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

 

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

 

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

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

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

코쟁히
3년 전
아.. 그렇군요ㅠㅠ 저것도 구글링하다 겨우 찾은 코드인뎁ㅠㅠ 다시 검색해봐야겠네요..
죄송하지만 혹시 뭐라고 검색을해야 제가 원하는 비슷한게 나올까요?

댓글을 작성하려면 로그인이 필요합니다.

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

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

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

코쟁히
3년 전
간단한 문제가 아니였군요..ㅠㅠ 좀 더 검색해봐야겠네요
답변 감사합니다!!

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인