2014-03-28 70 views
0

我有一页文字,第一段是可见的,其余段落是隐藏的,可以通过点击'阅读更多'链接可见...但'当其他段落打开时,“阅读更多”按钮仍然可见。我希望'read more'链接在被点击时隐藏,并在用户关闭容器时保留以前隐藏段落时再次显示。下面是我在这一刻的工作,这可能很简单,但我是一个jQuery noob。隐藏按钮,当打开以前隐藏的部分

感谢

$(function() 
{ 
    $(".about_text_wrap .readMore_aboutText") 
     .next() 
     .hide() 
     .append('<input type="button" value="close" />'); 

    $(".about_text_wrap .readMore_aboutText").click(function() 
    { 

     var $this = $(this); 
     $this.parent().find('.more_about_textWrap').slideUp("fast"); 
     $this.next().slideDown("slow"); 

    }); 

    $("input").click(function() 
    { 

     $(this).parent().slideUp(); 

    }); 
}); 

HTML

<div class="about_text_wrap"> 
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p><span class="readMore_aboutText">Read More</span> 
    <div class="more_about_textWrap"> 
     <p>Curabitur sodales ligula in libero. Sed dignissim lacinia nunc. Curabitur tortor. Pellentesque nibh. Aenean quam. In scelerisque sem at dolor. Maecenas mattis. Sed convallis tristique sem. Proin ut ligula vel nunc egestas porttitor. Morbi lectus risus, iaculis vel, suscipit quis, luctus non, massa. Fusce ac turpis quis ligula lacinia aliquet. Mauris ipsum. </p> 
     <p>Nulla metus metus, ullamcorper vel, tincidunt sed, euismod in, nibh. Quisque volutpat condimentum velit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam nec ante. Sed lacinia, urna non tincidunt mattis, tortor neque adipiscing diam, a cursus ipsum ante quis turpis. Nulla facilisi. Ut fringilla. Suspendisse potenti. Nunc feugiat mi a tellus consequat imperdiet. Vestibulum sapien. Proin quam. </p> 
     <p>Etiam ultrices. Suspendisse in justo eu magna luctus suscipit. Sed lectus. Integer euismod lacus luctus magna. Quisque cursus, metus vitae pharetra auctor, sem massa mattis sem, at interdum magna augue eget diam. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Morbi lacinia molestie dui. Praesent blandit dolor. Sed non quam. In vel mi sit amet augue congue elementum. Morbi in ipsum sit amet pede facilisis laoreet. Donec lacus nunc, viverra nec, blandit vel, egestas et, augue. Vestibulum tincidunt malesuada tellus. Ut ultrices ultrices enim. </p> 
    </div><!-- about_text_moreWrap --> 
</div><!-- about_text_wrap--> 

回答

1

您可以使用.hide()隐藏read more链接被点击和.show()当它显示它回来时,你的关闭按钮被点击这样:

$(function() { 

    $(".about_text_wrap .readMore_aboutText").next().hide().append('<input type="button" value="close" />'); 

    $(".about_text_wrap .readMore_aboutText").click(function() { 
     var $this = $(this); 
     $this.hide(); 
     $this.parent().find('.more_about_textWrap').slideUp("fast"); 
     $this.next().slideDown("slow"); 
    }); 

    $("input").click(function() { 
     $(this).parent().slideUp(function() { 
      $(".about_text_wrap .readMore_aboutText").show(); 
     }); 
    }); 
}); 

Fiddle Demo

+0

谢谢菲利克斯这帮了很多! – penelopepitstophelp

0

躲在要附加,这将无法工作后。使用end()然后追加这确保追加的DIV在正确的结构:

$(".about_text_wrap .readMore_aboutText").next().hide().end().append('<input type="button" value="close" />'); 
0

另一种可能是,以简化您的jQuery的东西,但随后您需要调整您的HTML,我不知道这是不是一个选项:

的jQuery/JS:

$(".readMore_aboutText").click(function() { 
    $(".more_about_textWrap").slideToggle(); 
    $(".readMore_aboutText").toggle(); 
}); 

CSS:

.more_about_textWrap { display: none; } 
.hideMe { display: none; } 

HTML:

<span class="readMore_aboutText">Read More</span> 
<span class="readMore_aboutText hideMe">Close</span> 

看到这个Fiddle demo