- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
只有在传递了 X 个字符的情况下,我才想将“显示更多”链接(如果单击将显示已 trim/隐藏的内容)附加到我的段落。
例如,我将最小字符数设置为 120 个字符,而该段落只有 60 个字符,因此我不需要附加“显示更多”链接。
我该如何解决?下面的代码效果很好,但即使少于 X 数量,也会对我拥有的任何段落应用“显示更多”。我该怎么办?
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));
});
回顾一下:
最佳答案
我写了一个纯 javascript 来处理您的请求,请看这里的演示:https://jsfiddle.net/IA7medd/751sLn0n/
HTML:
<div class="container">
<div class="events-left-col">
<h2 class="eventTitle">Event Title</h2>
<div class="wrap">
<div class="truncate">
<p class="toggledText">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod
tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam,
quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo
consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie
consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto
odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait
nulla facilisi.
</p>
</div>
</div>
<div class="wrap">
<div class="truncate">
<p class="toggledText">
Not enough characters here to show/append the "Read more" link
</p>
</div>
</div>
<div class="wrap">
<div class="truncate">
<p class="toggledText">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod
tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam,
quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo
consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie
consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto
odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait
nulla facilisi.
</p>
</div>
</div>
</div>
</div>
风格:
.toggledText span.trimmed{
display:none;
}
.read-more .more:before{
content:'Read More';
}
.showAll .toggledText span.morePoints{
display:none;
}
.showAll .toggledText span.trimmed{
display:inline;
}
.showAll .read-more .more:before{
content:'Read Less';
}
脚本:
var charLimit = 120;
var numberOfToggled = document.getElementsByClassName('toggledText');
for(i=0; i<numberOfToggled.length; i++){
var el = numberOfToggled[i];
var elText = el.innerHTML.trim();
if(elText.length > charLimit){
var showStr = elText.slice(0,charLimit);
var hideStr = elText.slice(charLimit);
el.innerHTML = showStr + '<span class="morePoints">...</span> <span class="trimmed">' + hideStr + '</span>';
el.parentElement.innerHTML = el.parentElement.innerHTML + "<div class='read-more'><a href='#' class='more'></a>";
}
}
window.onclick = function(event) {
if (event.target.className == 'more') {
event.preventDefault();
event.target.parentElement.parentElement.classList.toggle('showAll');
}
}
我还对您的代码进行了一些修改,并且运行良好。你可以在这里看到它:https://jsfiddle.net/IA7medd/j78L76qj/ (如果你需要的话)
关于javascript - 仅当满足设置的字符数时,才将 "show more"链接附加到 chop 的段落,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37267402/
在 Javascript 中,我有一个对象集合,我将其值存储在变量中 var filters = { BeginDate: $("#BeginDateRange").val(), En
只有在传递了 X 个字符的情况下,我才想将“显示更多”链接(如果单击将显示已 trim/隐藏的内容)附加到我的段落。 例如,我将最小字符数设置为 120 个字符,而该段落只有 60 个字符,因此我不需
大多数 tar 文件解压缩到它们自己的子文件夹中(因为编写开源实用程序的人都是了不起的人)。 一些提取到我的 cwd 中,这使一切变得困惑。我知道有一种方法可以查看 tar 中的内容,但我想编写一个
我有一个固定的侧边栏,只有在有足够的垂直空间可用时,我才想将一个 div 粘贴到它的底部。 如果没有足够的垂直空间,固定的 div 不应与前一个元素重叠,而应该顺流并生成一个滚动条。 有什么想法吗?
我有以下 csv 文件,file.csv: 1,yes,yes,customer1 2,no,yes,customer5 3,yes,yes,customer11 4,no,no,customer14
给定一个数据框 df 如下: id value1 value2 value3 0 0 22 1 7 1 1 0 0
我尝试将一个 div 放入另一个 div 中,使用他的子元素作为应激活可放置的区域。 为了让事情更清楚,我们假设我们有#parent_div、#child_div 和#droppable。我想将 #p
我是一名优秀的程序员,十分优秀!