slidetoggle无法正常工作

时间:2015-06-16 03:59:47

标签: javascript jquery html css

我创建了一个幻灯片,但它不起作用。一般情况下,如果我在这一年里徘徊几个月将通过slidetoggle显示,但它不起作用......可能脚本上的类是错误的。样本fiddle

HTML:

    <div class="smart-archives">

    <ul>
        <a class="year-link" href="http://net/2015">2015</a>: 

        <li><a class="month-link" href="http://.net/2015/01" title="1 post">January</a></li>
        <li><a class="month-link" href="http://.net/2015/02" title="1 post">February</a></li>
        <li><a class="month-link" href="http://.net/2015/03" title="16 posts">March</a></li>
        <li><a class="month-link" href="http://.net/2015/04" title="13 posts">April</a></li>
<li><a class="month-link" href="http://.net/2015/05" title="9 posts">May</a></li>
<li><a class="month-link" href="http://.net/2015/06" title="4 posts">June</a></li>
<li class="empty-month">July</li>
<li class="empty-month">August</li>
<li class="empty-month">September</li>
<li class="empty-month">October</li>
<li class="empty-month">November</li>
<li class="empty-month">December</li>
</ul>

    <ul>
<a class="year-link" href="http://.net/2014">2014</a>:
<li class="empty-month">January</li>
<li><a class="month-link" href="http://.net/2014/02" title="14 posts">February</a></li>
<li><a class="month-link" href="http://.net/2014/03" title="25 posts">March</a></li>
<li><a class="month-link" href="http://.net/2014/04" title="11 posts">April</a></li>
<li><a class="month-link" href="http://.net/2014/05" title="11 posts">May</a></li>
<li><a class="month-link" href="http://.net/2014/06" title="5 posts">June</a></li>
<li><a class="month-link" href="http://.net/2014/07" title="4 posts">July</a></li>
<li><a class="month-link" href="http://.net/2014/08" title="6 posts">August</a></li>
<li><a class="month-link" href="http://.net/2014/09" title="6 posts">September</a></li>
<li><a class="month-link" href="http://.net/2014/10" title="3 posts">October</a></li>
<li><a class="month-link" href="http://.net/2014/11" title="4 posts">November</a></li>
<li><a class="month-link" href="http://.net/2014/12" title="1 post">December</a></li>
</ul>
    </div>

CSS:

ul li { display:none; }
.empty-month { display: none; }

SCRIPT:

$("ul > li").hover(function () {
    $(this).children("ul li").slideToggle("fast");
});

2 个答案:

答案 0 :(得分:2)

您应该在sibling的鼠标悬停时滑动切换li anchor,如下所示:

DEMO

$("ul > a").hover(function () {
    $(this).siblings("li").slideToggle("fast");
});

如果您在hover

上保留该选项,则可能会遇到以下问题
  
      
  • 可能无法在移动设备上正常使用
  •   
  • 一旦 hoverout 链接
  • ,您将无法点击这几个月   

所以我建议在click上执行与

相同的功能

DEMO FOR CLICK

$("ul > a").click(function (e) {
    e.preventDefault();
    $(this).siblings("li").slideToggle("fast");
});

答案 1 :(得分:2)

liul所以

的旧有效子项
<ul>
    <li><a class="year-link" href="http://thegypsetters.net/2015">2015</a>:</li>
    <li><a class="month-link" href="http://thegypsetters.net/2015/01" title="1 post">January</a>

然后

$("ul > li:has(.year-link)").hover(function () {
    $(this).siblings().slideToggle("fast");
});

ul li {
    display:none;
}
ul li:first-child {
    display: list-item;
}

演示:Fiddle