2014-10-18 84 views
1

我得到了一个jQuery切换,似乎工作,但是当我再次点击它时,它似乎不想滑下它被点击。我甚至试图点击其他人。切换点击,但不会滑落一旦点击

我在做什么错?我已经去过了,但也许我错过了一些相对简单的事情。

的javascript:

$(function() {   
       $("li.subMenu").click(function() {  
        $(".subMenu-link").slideUp("normal"); 
        $(this).next().slideDown(); 
       });  
       $(".subMenu-link").not(':first').hide(); 
      }); 

HTML:

<li class="subMenu">          
    <i class="lock"></i> 
    <span class="title">User Account</span> 
    <span class="toggle">+</span> 
     <ul class="subMenu-link"> 
      <li>One Link</li> 
      <li>One Link</li> 
      <li>One Link</li> 
      <li>One Link</li> 
     </ul> 
</li> 

JSFiddle

+1

这是你想要做什么? http://jsfiddle.net/qj58Lm5q/1/ – 2014-10-18 00:44:02

+1

你打电话给$(this).next(),但li.submenu是$(this),它没有next()。 – 2014-10-18 00:47:19

回答

2

此:

$(this).next(); 

选择下一个里子菜单项,你可以说是alread y“向下”(可见)。您可能想要在子菜单项中下拉无序列表。您可以通过孩子们访问:

$(this).next().children('.subMenu-link').slideDown(); 

如果点击了第一个它会隐藏第一个,然后显示第二个。如果点击第二个,它会隐藏第二个并显示第三个。然而,如果你点击第三个元素,那么它只会滑动该元素而不滑动,因为没有第四个元素。

如果你正在尝试做的是一个显示和隐藏别人,你可以用兄弟姐妹来代替:

$("li.subMenu").click(function() {  
       $(this).children(".subMenu-link").slideDown("normal"); 
       $(this).siblings().children('.subMenu-link').slideUp(); 
      });