| 

.NET C# Java Javascript Exception

3
hallo zusammen,

wie löst man eine text().lenght einschränkung auf?

so hab ichs erstellt:
$('div.box p').each(function(){
if ($(this).text().length > 104) {
$(this).text($(this).text().substr(0, 100));
$(this).append(" ...");
}
});


und in diesem prinzip (viele versuche) zu lösen:
$('a.readMore').click(function(){
$('div.box').each(function(){
$('div.box p').removeData();
$('div.box p').slideDown(500);
});
});


hat jemand nen tipp für mich?


gruß GioCece
15.05.2013
GioCece 156 1 6
Was meinst du mit auflösen?
Floyd 15.05.2013
der eigentliche text in der div.box ist viel länger. jetzt möchte ich wenn ich aus den button .readmore klicke, diese kürzung aufgehoben werden soll und der div komplett aufklappt damit man den ganzen text sehen kann.
GioCece 15.05.2013
Im Prinzip ähnelt das ganze einem Accordion, nur das die elemente nicht ganz zu klappen, sondern ein teil des Textes angezeigt wird.
GioCece 15.05.2013
1 Antwort
2
Zum Beispiel so:

$('div.box p').each(function(){
var $p = $(this);
var text = $p.text();
if (text.length > 104) {
$p
.data('fullText', text)
.text(text.substr(0, 100))
.append(" ...")
.append(
$("<a/>")
.text('readmore')
.attr('href','#')
.click(function(){
$p.text($p.data('fullText'));
})
);
;
}
});


Demo: http://jsfiddle.net/fhPyZ/
15.05.2013
Floyd 14,6k 3 9
alter schwede! ok, das ist echt viel mehr als ich mir überhaupt denken konnte. Die lösung ist toll! Danke!
GioCece 15.05.2013
Gern gesehen, freu mich zu helfen.
Es geht auch kürzer zu schreiben. Ich hab zum einen ist die schreibweise performanter, stabiler und leichter zu verstehen. Man kann es kürzer und noch performanter schreiben in dem man den Click-Event-Handler auslagert und z.B. mittels Event-Propaganding arbeitet (also z.B. den Click-Event-Handler auf "div.box" oder "body" legt). Wenn du daran interessiert bist, bau ich auch dafür eine Demo.
Floyd 15.05.2013
dankeschön für die anregung! ich versuchs mal selber :) sonst lern ich ja garnix!
GioCece 16.05.2013

Stelle deine Javascript-Frage jetzt!