如何在页面或帖子上使用“显示更多”来显示和隐藏内容

时间:2018-05-08 作者:Rvervuurt

如果您想使用内置的“所见即所得”按钮,该怎么办show more, 在帖子或页面中隐藏和显示文本?

我一开始误解了功能。我认为该功能实际上是为了满足我的需要,即隐藏加载的部分内容,使用“阅读更多”按钮,单击后会显示剩余内容。

然而,事实似乎并非如此,这让我无论如何都在寻找使用它的解决方案。你可以说,以我想要的方式使用它。

由于我在网上找不到解决方案,我不得不开始开发自己的解决方案,只需使用一点jQuery就可以完全满足我的需要。

Note 如果您按原意使用“阅读更多”标记(显示文本的哪些部分必须在frontpage/归档文件上显示为摘要等),您将无法按原样使用此解决方案。然而,有一个简单的方法可以通过一点HTML来解决这个问题,我将把它添加到我的答案的底部。

1 个回复
SO网友:Rvervuurt

任何包含“阅读更多”标签的帖子都有<p>-标记内部aspan 使用ID 调用more-#, 其中# 可以是任意数字。看起来是这样的:

<p>
   <span id="more-1"></span>
</p>
我必须选择特定的跨度,并将其存储在一个变量中:

var $showMore = $(\'span[id*="more-"]\');

将某种文本添加到show more-span,我使用了jQuery的.html():

$showMore.html("Read more <i class=\'icon-down-open-big\'></i>");

当然,什么都可以AFTER 这个read more-标签必须在加载时隐藏,这可以通过上升一级(使用.parent()) 然后选择该父对象中的以下所有块。这可以通过.nextAll(), 选择当前块之后的所有块(当然,直到父块关闭)。

由于稍后将使用此选择,我还将其存储在一个变量中:

var $showMoreNext = $showMore.parent().nextAll();

现在我们有了所有的选择器,我们所需要做的就是在加载时隐藏它,并在Read more 已单击。

$showMoreNext.hide(); // to hide all elements after the Read more tag

$showMore.on(\'click\', function() {
   $showMoreNext.toggle("slow");
});
Thetoggle 可以再次单击标记,隐藏所有原来隐藏的内容。

因此,在Wordpress的inbuild“read more”标记之后进行类似手风琴的扩展所需的只是以下jQuery部分:

var $showMore = $(\'span[id*="more-"]\');
$showMore.html("Læs mere <i class=\'icon-down-open-big\'></i>");
var $showMoreNext = $showMore.parent().nextAll();
$showMoreNext.hide();

$showMore.on(\'click\', function() {
  $showMoreNext.toggle("slow");
});

Now, what if you actually use the "read more"-function already?

有两种可能的解决方案:

1) 您只在希望“滥用”“阅读更多”的页面上包含上述jQuery,标记2)您制作了一小块html,并将其放置在您想要的文本中。只需确保相应地调整jQuery即可。

结束