2015-09-25 59 views
1

我对Jquery真的很陌生,并且试图弄清楚为什么我从另一个用户那里获得的JQuery代码不起作用,当我将id属性放在ol标签中时,但工作正常时,id属性被放置在导航标签中。如果有人能这么好心向我解释这个问题,谢谢。好奇的切换案例

HTML

<nav id="cat"> 
     <ol> 
     <li><a title="" href="#1">1;</a></li> 
     <li><a title="" href="#2">2</a></li> 
     </ol> 
    </nav> 

    <!-- DOES NOT WORK --> 
    <nav class="sub"> 
     <ol id="1"> 
     <li><a title="" href="">1a</a></li> 
     </ol> 
    </nav> 

    <!-- WORKS --> 
    <nav class="sub" id="2"> 
     <ol> 
     <li><a title="" href="">2a</a></li> 
     </ol> 
    </nav> 

JQuery的

var $subs = $('.sub'); 
    $('#cat > ol > li > a').click(function() { 
     var href = $(this).attr('href'), 
     $target = $(href); 
     $target.stop().slideToggle('slow'); 
     $subs.not($target).stop().slideUp('slow'); 
    }); 

这里是小提琴 enter link description here

+0

'$ subs'是的''

回答

0

移动id=1到孩子ol指OL不再也.sub。你需要IDS都转移到孩子ol秒,然后更新$sub选择是.sub > ol

http://jsfiddle.net/41rh3n4w/

+0

这似乎不起作用。 – ski

+0

我想我看着错误的“ol”。正如@Eraph所说,你的问题在于$ subs。我会更新我的回答 –

+0

这似乎并没有工作要么感谢帮助,但。 – ski