Chcę dodać link "pokaż więcej" (jeśli kliknięto odsłoni treść, która została przycięta/ukryta) do mojego akapitu, tylko jeśli X liczba znaków jest przekazywana.dopisz link "pokaż więcej" do obciętego akapitu tylko wtedy, gdy zostanie ustawiona ilość znaków.
Na przykład ustawiłem minimum 120 znaków, a akapit ma tylko 60, więc nie muszę dodawać linku "pokaż więcej".
Jak mogę to rozwiązać? Poniższy kod działa świetnie, ale zastosuje "pokaż więcej" do każdego akapitu, który mam, mimo że jest mniejszy niż kwota X. Co powinienem zrobić?
https://jsfiddle.net/vm0uj7fc/1/
var charLimit = 122;
function truncate(el) {
var clone = el.children().first(),
originalContent = el.html(),
text = clone.text();
el.attr("data-originalContent", originalContent);
clone.text(text.substring(0, charLimit) + "...")
el.empty().append(clone);
}
function reveal(el) {
el.html(el.attr("data-originalContent"));
}
$("a").on("click", function (e) {
e.preventDefault();
var truncateElement = $(this).parent().prev().find(".truncate");
if ($(this).text() === "Read More") {
$(this).text("Read Less");
reveal(truncateElement);
} else {
$(this).text("Read More");
truncate(truncateElement);
}
});
$(".truncate").each(function() {
truncate($(this));
});
Przypomnę: (? Funkcji .append)
- muszę dołączyć "czytaj więcej" dynamicznie
- Sprawdź znaków i jeśli mniej niż max ilość NIE pokaż więcej czytaj więcej
- opcjonalnie, jeśli ktoś może wymyślić czysty kod JavaScript, który byłby preferowanym wyborem, jeśli nie, dobrze się czuję z jakąś gwiazdą refaktoryzującą kod z mojego kodu powyżej: