2011-08-02 23 views
0

は私のコードjQueryのアコーディオン親リンク

マイHTML

 <ul id="menu"> 
      <li> 
       <a href="http://stackoverflow.com/questions/ask">Menu 1 1</a> 
       <ul> 
        <li><a href="http://yahoo.com/">Menu 1 Sub</a></li> 
       </ul> 
      </li> 

      <li> 
       <a href="http://stackoverflow.com/">Menu 2</a> 
       <ul> 
        <li><a href="http://google.com/">Menu 2 Sub 1</a></li> 
        <li><a href="http://wiki.com/">Menu 2 Sub 2</a></li> 
       </ul> 
      </li> 

     </ul> 
です

私のCSS

ul#menu, ul#menu ul { 
    list-style-type:none; 
    margin: 0; 
    padding: 0; 
    width:220px; 
} 

ul#menu a { font:bold 12px Arial, Helvetica, sans-serif; 
    display: block; 
    text-decoration: none;  
} 

ul#menu li { 
    margin-top: 1px; 
} 

ul#menu li a { 
    background: #1c3f94; 
    color: #fff;  
    padding: 0.5em; 
} 

ul#menu li a:hover { 
    background: #000; 
} 

ul#menu li ul li a { 
    background: #ccc; 
    color: #000; 
    padding-left: 20px; 
} 

ul#menu li ul li a:hover { 
    background: #aaa; 
    border-left: 5px #000 solid; 
    padding-left: 15px; 
} 

私のJS

function initMenu() { 
    $('#menu ul').hide(); 
    $('#menu ul:first').show(); 
    $('#menu li a').click(
    function() { 
     var checkElement = $(this).next(); 
     if((checkElement.is('ul')) && (checkElement.is(':visible'))) { 
     return false; 
     } 
     if((checkElement.is('ul')) && (!checkElement.is(':visible'))) { 
     $('#menu ul:visible').slideUp('normal'); 
     checkElement.slideDown('normal'); 
     return false; 
     } 
     } 
    ); 
    } 
$(document).ready(function() {initMenu();}); 

LIVE DEMO

+0

あなたはそれはあなたがしたいことが何であるかを明確にしてくださいことはできますか? –

+0

@Abe \t メニュー2をクリックしようとすると、そのサブメニューが表示され、メニュー2をもう一度クリックするとリンクが表示されます。stackoverflow.com – noviceRick

答えて

1

最初の条件がtrueの場合はfalseを返すしないでください:

function initMenu() { 
    $('#menu ul').hide(); 
    $('#menu ul:first').show(); 
    $('#menu li a').click(function() { 
     var checkElement = $(this).next(); 
     if ((checkElement.is('ul')) && (checkElement.is(':visible'))) { 
      return true; 
     } 
     if ((checkElement.is('ul')) && (!checkElement.is(':visible'))) { 
      $('#menu ul:visible').slideUp('normal'); 
      checkElement.slideDown('normal'); 
      return false; 
     } 
    }); 
} 
+0

ありがとうございました!今は完全に動作します – noviceRick

関連する問題