>  기사  >  웹 프론트엔드  >  Jquery code_jquery를 기반으로 아코디언 메뉴 구현

Jquery code_jquery를 기반으로 아코디언 메뉴 구현

WBOY
WBOY원래의
2016-05-16 15:31:121197검색

먼저 렌더링을 보여드리겠습니다.

먼저 페이지 코드를 보면 목록이 중첩되어 있습니다.

<div id="menuDiv">
  <ul id="menu">
    <li class="parentLi">
      <span>B</span>
      <ul class="childrenUl">
        <li class="childrenLi"><span>C</span></li>
        <li class="childrenLi"><span>C</span></li>
        <li class="childrenLi"><span>C</span></li>
      </ul>
    </li>
    <li class="parentLi">
      <span>B</span>
      <ul class="childrenUl">
        <li class="childrenLi"><span>C</span></li>
        <li class="childrenLi"><span>C</span></li>
        <li class="childrenLi"><span>C</span></li>
      </ul>
    </li>
    <li class="parentLi">
      <span>B</span>
      <ul class="childrenUl">
        <li class="childrenLi"><span>C</span></li>
        <li class="childrenLi"><span>C</span></li>
        <li class="childrenLi"><span>C</span></li>
      </ul>
    </li>
  </ul>
</div>

CSS 코드는 주로 하위 메뉴의 배경색과 왼쪽 테두리 스타일을 설정하고, 플로팅 및 선택 스타일을 설정하고, 하위 메뉴가 표시되지 않도록 설정하기 시작합니다(js 설정을 통해 클릭 후 표시).

#menuDiv{
  width: 200px;
  background-color: #029FD4;
}
.parentLi
{
  width: 100%;
  line-height: 40px;
  margin-top: 1px;
  background: #1C73BA;
  color: #fff;
  cursor: pointer;
  font-weight:bolder;
}
.parentLi span
{
  padding: 10px;
}
.parentLi:hover, .selectedParentMenu
{
  background: #0033CC;
}
.childrenUl
{
  background-color: #ffffff;
  display: none;
}
.childrenLi
{
  width: 100%;
  line-height: 30px;
  font-size: .9em;
  margin-top: 1px;
  background: #63B8FF;
  color: #000000;
  padding-left: 15px;
  cursor: pointer;
}
.childrenLi:hover, .selectedChildrenMenu
{
  border-left: 5px #0033CC solid;
  background: #0099CC;
  padding-left: 15px;
}

다음은 클릭 이벤트에 대한 코드입니다.

$(".parentLi").click(function(event) {
    $(this).children('.childrenUl').slideToggle();
  });
  $(".childrenLi").click(function(event) {
    event.stopPropagation();
    $(".childrenLi").removeClass('selectedChildrenMenu');
    $(".parentLi").removeClass('selectedParentMenu');
    $(this).parents(".parentLi").addClass('selectedParentMenu');
    $(this).addClass('selectedChildrenMenu');
  });

중첩된 목록으로 인해 이벤트가 버블링될 수 있으므로 버블링은 하위 메뉴의 클릭 이벤트인 event.stopPropagation();에서 구성되어야 합니다.

위 코드는 아주 간단하고, 코드는 그냥 주석으로, jquery 아코디언 메뉴를 구현한 것입니다. 도움이 필요한 친구들이 와서 참고할 수 있습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.