У меня есть сайт, на котором отображается ряд историй от пользователей при загрузке страницы. Я хочу отобразить только первые 2 предложения каждой истории со ссылкой «Показать больше», под которой пользователь может нажать. Я попытался включить код из принятого ответа на этот вопрос ссылка .
Верхние 2 строки скрыты, и отображение такое, как я хотел бы, но я не могу получить jQuery прикреплен к ссылке, чтобы запустить и показать все строки. Это ошибка селектора?
Моя скрипка: ссылка
Html (генерируется при вызове Ajax при загрузке окна):
<div class="post">
<div class="hideContent">
<div class="post-text">
Lorem ipsum dolor sit amet, ex mel graece iuvaret. Ius cu cetero nonumes complectitur, no clita accusam splendide pri. Ea sit tale democritum, ea meis rebum est..</div>
<div class="post-action">
<input type="button" value="Like" id="like_86_cmpq0" class="like">
<span class="likesTotal" id="likes_86_cmpq0">0</span></div>
</div>
<div class="showMore"><a href="#">Show more</a></div>
</div>
CSS:
.hideContent {
overflow: hidden;
line-height: 1em;
height: 2em;
}
.showContent {
line-height: 1em;
height: auto;
}
JQuery:
$(".showMore a").on("click", function() {
var $this = $(this);
//var $content = $this.parent().prev("div.content");
var $content = $this.closest("hideContent");
var linkText = $this.text().toUpperCase();
if(linkText === "SHOW MORE"){
linkText = "Show less";
$content.switchClass("hideContent", "showContent", 400);
} else {
linkText = "Show more";
$content.switchClass("showContent", "hideContent", 400);
}
$this.text(linkText);
});
EDIT:
JQuery, который создает html выше:
$(window).on('load', function () {
$.ajax({
url: 'serverside/stories.php',
method: 'POST',
dataType: 'json',
success: function(response) {
$(".content").html("")
$(".total").html("")
if(response){
var total = response.length;
$('#intro') .append("<p>Get inspired by reading personal stories about anxiety</p>");
}
$.each(response, function() {
$.each($(this), function(i, item) {
var mycss = (item.Type == 1) ? ' style="color: #ffa449;"' : '';
$('.content').append('<div class="post"><div class="hideContent"><div class="post-text"> ' + item.MessageText + ' </div><div class="post-action"><input type="button" value="Like" id="like_' + item.ID + '_' + item.UserID + '" class="like" ' + mycss + ' /><span class="likesTotal" id="likes_' + item.ID + '_' + item.UserID + '">' + item.CntLikes + '</span></div></div>' + '<div class="showMore"><a href="#">Show more</a></div></div>');
});
});
}
});
});