제이쿼리 드롭다운 메뉴

제이쿼리 드롭다운 메뉴

QA

제이쿼리 드롭다운 메뉴

본문

$(document).ready(function(){
 $('li.button a').click(function(e){
  var dropDown = $(this).parent().next();
  
$('.dropdown').not(dropDown).slideUp('fast');
 
  $('.on').css("display", "none");
  $('.off').css("display", "block");

  dropDown.slideToggle('fast');
 
  $('.on').css("display", "block");
  $('.off').css("display", "none");

  e.preventDefault();
 })
 
});
 
6개의 메뉴가 있는데요.
메뉴 클릭시 펼쳐질 때는 .on 클래스를... 다시  클릭하거나 다른 메뉴를 클릭해서
그 열렸던 서브메뉴가 접어질 때는 .off 클래스를 부르는데요
문제는 메뉴가 6개 정도 되는데 1번 메뉴를 클릭하면 그 1번에만  .on 클래스가  적용되어 져야 하는데
전체 메뉴가 다 바껴 버리네요..
 
각 메뉴 클릭시 드롭다운은 각각 메뉴 다 따로 작동이 되는데 각 메뉴가 클래스명이 같더라도 해당 클래스만 변화를 주고자 할려면 어떻게 해야 할까요

이 질문에 댓글 쓰기 :

답변 5

<script type="text/javascript">
 $(document).ready(function(){
$('.menu ul>li a').click(function(){
var li = $(this).parent();
if(li.hasClass('on')){
$(this).parent().removeClass('on');
$('.submenu').slideUp('fast').parent().hide();
$(this).find('img').attr("src",$(this).find('img').attr("src").replace("on","off"));
}else{
$(this).parent().siblings('li').removeClass('on');
$('.button a >img').attr("src",$('.button a >img').attr("src").replace("on","off"));
$('.submenu').slideUp('fast').parent().hide();
$(this).parent().addClass('on').next().show().find('ul').slideDown('fast');
$(this).find('img').attr("src",$(this).find('img').attr("src").replace("off","on"));
}
});
 });
 </script>

<ul class="container">
<li class="menu">
<ul>
<li class="button"><a href="#"><img src="./img/sub_menu01_off.gif" alt="" /></a></li>
<li class="dropdown">
<ul class="submenu">
<li>
111
</li>
<li>
2222
</li>
<li>
3333
</li>

</ul>
</li>

<li class="button"><a href="#"><img src="./img/sub_menu02_off.gif" alt="" /></a></li>
<li class="dropdown">
<ul class="submenu">
<li>
4444
</li>
<li>
5555
</li>
<li>
6666
</li>
</ul>
</li>
</ul>

</li>
</ul>

이렇게 하시면 될거 같아요~

html에서 필요 없어보이는건 삭제했어요

<li class="button"><a href="#" class="pink"><img src="./img/sub_menu01_off.gif" alt="" /></a></li>
<li class="dropdown">
    <ul class="submenu">
        <li><img src="./img/sub_menu01_1.gif" alt="" /></li>
        <li><img src="./img/sub_menu01_2.gif" alt="" /></li>
        <li><img src="./img/sub_menu01_3.gif" alt="" /></li>
    </ul>
</li>


var old = '',
    flag = true;
$('li.button a > img').click(function(e){
    $.each($('li.button a > img'), function(index, item){
        item.src = item.src.replace('_on','_off');
    });
    if(old && $(this).attr('src') != old.attr('src') || flag) 
        $(this).attr('src',$(this).attr('src').replace('_off','_on'));    
     else                  
        $(this).attr('src',$(this).attr('src').replace('_on','_off'));             
     old = $(this); flag = !flag;
})
html을 봤으면 좋겠는데...


<script type="text/javascript">
 $(document).ready(function(){
$('.ul>li').click(function(){
var lia = $(this)
if(lia.hasClass('on')){
$(this).find('ul').slideUp('fast');
}else{
$(this).siblings('li').removeClass('on').each(function(){
$(this).find('ul').slideUp('fast');
});
$(this).addClass('on').find('ul').slideDown('fast');
}
});
 });
 </script>
 <style type="text/css">
.ul{width:300px;position:relative;}
.ul li{background:red;display:inline;color:#fff;}
.ul li ul{display:none;position:absolute;top:20px;left:0;}
.ul li ul li{background:blue;color:#fff;}
 </style>
 <ul class="ul"> 
  <li>1번메뉴
<ul>
<li>1번의_1</li>
<li>1번의_2</li>
<li>1번의_3</li>
</ul>
</li>
  <li>2번메뉴
<ul>
<li>2번의_1</li>
<li>2번의_2</li>
<li>2번의_3</li>
</ul>
</li>
  </ul>

가장 간단하게는 이렇게 하시면 될거 같네요
html 은
이렇게 되어 있습니다.
 
<script type="text/javascript">
 
$(document).ready(function(){
 $('li.button a').click(function(e){
  var dropDown = $(this).parent().next();
  $('.dropdown').not(dropDown).slideUp('fast');
  dropDown.slideToggle('fast');
  e.preventDefault();
 })
});
</script>
 
<ul class="container">
 
  <li class="menu">
   <ul>
  <li class="button"><a href="#"><span class="off"><img src="./img/sub_menu01_off.gif" alt="" /></span></a><a href="#"><span class="on"><img src="./img/sub_menu01_on.gif" alt="" /></span></a></li>
  <li class="dropdown">
   <ul class="submenu">
    <li><img src="./img/sub_menu01_1.gif" alt="" /></li>
    <li><img src="./img/sub_menu01_2.gif" alt="" /></li>
    <li><img src="./img/sub_menu01_3.gif" alt="" /></li>
   </ul>
  </li>

  
  <li class="button"><a href="#"><span class="off"><img src="./img/sub_menu02_off.gif" alt="" /></span></a><a href="#"><span class="on"><img src="./img/sub_menu02_on.gif" alt="" /></span></a></li>
  <li class="dropdown">
   <ul class="submenu">
    <li><a href="#"><img src="./img/sub_menu01_1.gif" alt="" /></a></li>
    <li><a href="#"><img src="./img/sub_menu01_2.gif" alt="" /></a></li>
    <li><a href="#"><img src="./img/sub_menu01_3.gif" alt="" /></a></li>
   </ul>
  </li>

  <li class="button"><a href="#"><span class="off"><img src="./img/sub_menu03_off.gif" alt="" /></span></a><a href="#"><span class="on"><img src="./img/sub_menu03_on.gif" alt="" /></span></a></li>
  <li class="dropdown">
   <ul class="submenu">
    <li><a href="#"><img src="./img/sub_menu01_1.gif" alt="" /></a></li>
    <li><a href="#"><img src="./img/sub_menu01_2.gif" alt="" /></a></li>
    <li><a href="#"><img src="./img/sub_menu01_3.gif" alt="" /></a></li>
   </ul>
  </li>

  <li class="button"><a href="#"><span class="off"><img src="./img/sub_menu04_off.gif" alt="" /></span></a><a href="#"><span class="on"><img src="./img/sub_menu04_on.gif" alt="" /></span></a></li>
  <li class="dropdown">
   <ul class="submenu">
    <li><a href="#"><img src="./img/sub_menu01_1.gif" alt="" /></a></li>
    <li><a href="#"><img src="./img/sub_menu01_2.gif" alt="" /></a></li>
    <li><a href="#"><img src="./img/sub_menu01_3.gif" alt="" /></a></li>
   </ul>
  </li>

  <li class="button"><a href="#"><span class="off"><img src="./img/sub_menu05_off.gif" alt="" /></span></a><a href="#"><span class="on"><img src="./img/sub_menu05_on.gif" alt="" /></span></a></li>
  <li class="dropdown">
   <ul class="submenu">
    <li><a href="#"><img src="./img/sub_menu01_1.gif" alt="" /></a></li>
    <li><a href="#"><img src="./img/sub_menu01_2.gif" alt="" /></a></li>
    <li><a href="#"><img src="./img/sub_menu01_3.gif" alt="" /></a></li>
   </ul>
  </li>

  <li class="button"><a href="#"><span class="off"><img src="./img/sub_menu06_off.gif" alt="" /></span></a><a href="#"><span class="on"><img src="./img/sub_menu06_on.gif" alt="" /></span></a></li>
  <li class="dropdown">
   <ul class="submenu">
    <li><img src="./img/movie01.gif" alt="" /></li>
   </ul>
  </li>
  <li class="button"><a href="#"><span class="off"><img src="./img/sub_menu07_off.gif" alt="" /></span></a><a href="#"><span class="on"><img src="./img/sub_menu07_on.gif" alt="" /></span></a></li>
  <li class="dropdown">
   <ul class="submenu">
    <li><img src="./img/movie02.gif" alt="" /></li>
   </ul>
  </li>
   </ul>
  </li>
 
</ul>
답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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