与jquery的简单一致性

与jquery的简单一致性,jquery,Jquery,我使用jquery构建简单的Accordina。我尝试使用jquery.next()方法,但运气不好,单击时什么也没发生。我应该使用另一种jquery方法,还是走对了路,你知道吗? 这是我的html: <article class="TimBox"> <img src="/images/Tim01.jpg"> <div class="TimBoxTekst"> <h2>

我使用jquery构建简单的Accordina。我尝试使用jquery.next()方法,但运气不好,单击时什么也没发生。我应该使用另一种jquery方法,还是走对了路,你知道吗? 这是我的html:

        <article class="TimBox">
          <img src="/images/Tim01.jpg">
          <div class="TimBoxTekst">
            <h2>Title 1</h2>
            <h3>Subtitle 1</h3>
            <div class="LinkBox">
              <a href="#">more<i class="fa fa-angle-right"></i></a>
            </div>
          </div>
          <div class="clear"></div>
          <div class="TimBoxBio">Hidden text 1</div>
        </article>

        <article class="TimBox">
          <img src="/images/Tim01.jpg">
          <div class="TimBoxTekst">
            <h2>Title 2</h2>
            <h3>Subtitle 2</h3>
            <div class="LinkBox">
              <a href="#">more<i class="fa fa-angle-right"></i></a>
            </div>
          </div>
          <div class="clear"></div>
          <div class="TimBoxBio">Hidden text 2</div>
        </article>
下面是css:

.TimBox .TimBoxBio{
    position:relative;
    display:none;
}
.next()用于获取紧跟其后的同级。在您的情况下,.TimBoxBio不是相对于.LinkBox的下一个元素

试试这个:

$(document).ready(function() {
    $(".TimBox .LinkBox").click(function() {
        var $bio = $(this).closest('.TimBox').find('.TimBoxBio');

        if($bio.is(":visible")){
            $bio.slideUp();
            return false;
        } else {
            $(".TimBox .TimBoxBio").slideUp();
            $bio.slideToggle();
            return false;
        }       
    });
});
请参见此处的工作小提琴:

$(document).ready(function() {
    $(".TimBox .LinkBox").click(function() {
        var $bio = $(this).closest('.TimBox').find('.TimBoxBio');

        if($bio.is(":visible")){
            $bio.slideUp();
            return false;
        } else {
            $(".TimBox .TimBoxBio").slideUp();
            $bio.slideToggle();
            return false;
        }       
    });
});