Read more / less toggle (for new jQuery)

by sambaldwin

HTML

<div class="wrap">
    <p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget
    lacinia odio sem nec elit.</p>
<a class="readmorebtn">Read more</a>

<p class="more">Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
    Curabitur blandit tempus porttitor. Lorem ipsum dolor sit amet, consectetur
    adipiscing elit. Maecenas faucibus mollis interdum. Etiam porta sem malesuada
    magna mollis euismod. Praesent commodo cursus magna, vel scelerisque nisl
    consectetur.
</p>
</div>
<div class="wrap">
<p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget
    lacinia odio sem nec elit.</p>
<a class="readmorebtn">Read more</a>

<p class="more">Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
    Curabitur blandit tempus porttitor. Lorem ipsum dolor sit amet, consectetur
    adipiscing elit. Maecenas faucibus mollis interdum. Etiam porta sem malesuada
    magna mollis euismod. Praesent commodo cursus magna, vel scelerisque nisl
    consectetur.
</p>
</div>

CSS

body {
    font-family:Helvetica Neue;
    font-size:100%;
    line-height:1.4em;
    font-weight:500;
    margin:20px;
}
p {
    margin:1.4em 0;
}
p.more {
    display:none;
}

a.readmorebtn {
    cursor:pointer;
}
a.readmorebtn:hover {
    border-bottom:1px black solid;
}

.wrap {
    border-bottom: none;
    margin:0 0 2.8em 0;
}

JavaScript

var moreText = "Read more",
    lessText = "Read less",
    moreButton = $("a.readmorebtn");

moreButton.click(function () {
    var $this = $(this);
    $this.text( $this.text() 
                           //code from (http://bit.ly/XXW9yQ)
                           //Sam's attempt to explain:
               == moreText //'condition'
               ? lessText  //'value 1'
               : moreText  //'value 2' 
                           //(see:http://bit.ly/XXVcH5)
              );
    $this.next("p.more").slideToggle(0);
});