Javascript使菜单只有在被选中时才可见

时间:2013-01-10 15:58:16

标签: javascript

我有这个菜单结构

<div id="menu-s">
<ul>
<li>
<a href="#">About Us</a>
    <ul class="sub-menu">
       <li>
          <a>
       </li>
     </ul>
</li>

我用这个js:

  <script>
        $(document).ready(function () {
  $('#menu-s > li > a').click(function(){
    if ($(this).attr('class') != 'active'){
      $('#menu-s li ul').slideUp();
      $(this).next().slideToggle();
      $('#menu-s li a').removeClass('active');
      $(this).addClass('active');
    }
  });
});
</script>

我只想在调用父li时使子ul可见。 请在这件事上给予我帮助.. 感谢

1 个答案:

答案 0 :(得分:2)

您没有第一个<ul>的结束标记。此外,您的选择器无效。它应该是$('#menu-s > ul > li > a')

@edit
代码$(this).attr('class') != 'active'也是无效的,因为它总是正确的(我认为)。你应该使用类似if(!$(this).hasClass('active'))

的东西

@ EDIT2
那是因为在你的情况下你只处理了没有类“活动”的情况,但是当它处理时,你没有代码来处理它。添加一个将解决此问题的else语句。