slideUp不能与.next()一起使用

时间:2015-08-26 13:47:28

标签: jquery

我定位了slideUp()slideDown()的{​​{1}}事件的div。一切都工作正常,除非我点击slideUp,它上升,然后再次下降。我想在点击相同的按钮时滑动切换。 演示 fiddle

.next()

JS:

<div class="earnContent">toggle one</div>
<div class="content">content one</div>
<div class="earnContent">toggle two</div>
<div class="content">content tow</div>
<div class="earnContent">toggle three</div>
<div class="content">content three</div>

3 个答案:

答案 0 :(得分:1)

我在这里做了改变:

$(".earnContent").click(function(e) {
    flag = ($(this).next().css('display')=='block');
    $(".content").slideUp(300);
    if(!flag)
      $(this).next().slideDown(300);
}); 
  

注意:在标志中我正在检查下一个内容div是否不是block表示   已关闭然后只打开它,否则不要。

DEMO

答案 1 :(得分:1)

一种可能的解决方案如下:

$(".earnContent").click(function(e) {
    // Retrieve current content
    var $thisContent = $(this).next();

    // Hide any other shown content
    $(".content").not($thisContent).slideUp(300);

    // Toggle the visibility of current content
    $thisContent.slideToggle(300);
});

<强> Fiddle Here

答案 2 :(得分:1)

这很简单: -

$(".earnContent").click(function (e) {
    $(".content").not($(this).next()).slideUp(300);
    $(this).next().slideToggle(300);
});

FIDDLE DEMO