2010-12-30 17 views
4

Ich möchte mit JQuery mehr/weniger anzeigen. Ich habe ein paar Beispiele von Googeln versucht, aber beide funktionieren nicht. Nichts Besonderes, ich brauche nur einen Textabschnitt, der auf eine bestimmte Höhe zugeschnitten ist, und einen Link, der zusätzlichen Text erweitert/versteckt.Mehr anzeigen Weniger anzeigen mit JQuery

Antwort

14

Dies sollte die Darstellung des vollen div umschalten, indem Sie die aktuelle div klicken, können Sie das Click-Ereignis zu jedem Auslöser Sie möchten hinzufügen.

HTML:

<div id="blah"> 
    Long...Content 
</div> 

Javascript:

$('#blah').css({height:'20px', overflow:'hidden'}); 
$('#blah').on('click', function() { 
    var $this = $(this); 
    if ($this.data('open')) { 
     $this.animate({height:'20px'}); 
     $this.data('open', 0); 

    } 
    else { 
     $this.animate({height:'100%'}); 
     $this.data('open', 1); 
    } 
}); 

weniger Anzeigen mit Javascript wird zunächst nicht die div auf unbestimmte Zeit für die Benutzer verbergen w/o Javascript aktiviert.

+0

Danke! Funktioniert in FF und Safari. Ich habe es so modifiziert, dass es ein Link ist, auf den Sie klicken. Angst, in IE7/8 zu testen;) –

+5

Hah, ist nicht jeder? immer? – jondavidjohn

+0

Also wahr! Ich erkannte, dass ich, während ich nach etwas Einfachem fragte, etwas weniger Einfaches brauchte und eine weitere Frage stellte. Sie müssen den Text sauber abschneiden. –

1

nicht getestet, aber sollte funktionieren:

<div style="height:500px;overflow:hidden" id="blah"> 
Hello Hello Hello.Hello Hello Hello.Hello Hello Hello.Hello Hello Hello.Hello Hello Hello.Hello Hello Hello.Hello Hello Hello.Hello Hello Hello.Hello Hello Hello.Hello Hello Hello.Hello Hello Hello.Hello Hello Hello.Hello Hello Hello. 
</div> 
<a href="#" id="showmore">Show more</a> 
<script> 
$("#showmore").live('click', function() { 
    $("#blah").css('height','1000px'); 

}); 
</script> 
+0

schaltet nicht um, er will expand/hide nicht nur erweitern. – jondavidjohn

+0

Ja, das funktioniert, aber ich möchte, dass es auch schrumpft. Ich habe http://plugins.jquery.com/project/moreLess ausprobiert, aber das funktioniert überhaupt nicht. –

1

Schnell und schmutzig Beispiel:

<style> 
.collapsed {height:50px; overflow:hidden} 
</style> 

<script> 
$(function() { 
    $(".expander").click(function() { $("div").toggleClass("collapsed"); }); 
}) 
</script> 
<div class="collapsed">LOTS AND LOTS OF TEXT LOTS AND LOTS OF TEXTLOTS AND LOTS OF TEXTLOTS AND LOTS OF TEXTLOTS AND LOTS OF TEXTLOTS AND LOTS OF TEXTLOTS AND LOTS OF TEXTLOTS AND LOTS OF TEXTLOTS AND LOTS OF TEXTLOTS AND LOTS OF TEXTLOTS AND LOTS OF TEXTLOTS AND LOTS OF TEXTLOTS AND LOTS OF TEXTLOTS AND LOTS OF TEXTLOTS AND LOTS OF TEXTLOTS AND LOTS OF TEXTLOTS AND LOTS OF TEXTLOTS AND LOTS OF TEXTLOTS AND LOTS OF TEXTLOTS AND LOTS OF TEXTLOTS AND LOTS OF TEXT</div> 
<span class="expander">Expand/Collapse</span> 
Verwandte Themen