jQuery 插件“readmore”,修剪文本而不剪词

发布于 2024-11-04 08:26:34 字数 302 浏览 1 评论 0原文

我正在使用 http://rockycode.com/blog/jquery-plugin-readmore/ 用于修剪长文本并添加“查看更多”链接以显示所有文本。

我很想避免说废话,我该怎么做呢?

如果限制为 35,则不要剪切 w...

如果限制为 35,则不要剪切单词...(在本例中,将其修剪为 38,然后显示第 39 条中的隐藏文本结束。

I'm using http://rockycode.com/blog/jquery-plugin-readmore/ for trim long text and add a "See more" link to reveal all the text.

I would love to avoid cutting words, how could I do that?

If the limit is 35, don't cut the w...

but

If the limit is 35, don't cut the word... (and in this case, trim it at 38 and then show the hidden text from 39th chtill the end.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夜灵血窟げ 2024-11-11 08:26:35

我只是在收集有关此主题的信息,在您的帮助和其他相关帖子的帮助下,我写了以下内容:

http:// /jsfiddle.net/KHd6J/526/

I was just gathering information about this subject, with your help and the help from other related posts I wrote this:

http://jsfiddle.net/KHd6J/526/

他是夢罘是命 2024-11-11 08:26:34

这样做,而不是这样做:

$elem.readmore({
  substr_len: 35
});

您可以

$elem.readmore({
  substr_len: $elem.text().substr(0, 35).lastIndexOf(" ")
});

我们正在做的是转到索引 35 之前的最新可能空间。
当然35可以是可变的。您也可以将其放入函数中以重用它。

希望这有帮助

Instead of doing this:

$elem.readmore({
  substr_len: 35
});

You could do this

$elem.readmore({
  substr_len: $elem.text().substr(0, 35).lastIndexOf(" ")
});

What we're doing is to go to the latest space posible before index 35.
Of course 35 can be variable. Also you could put it into a function to reuse it.

Hope this helps

意犹 2024-11-11 08:26:34

您可以按如下方式更改该插件中的 abridge 函数:

function abridge(elem) {
  var opts = elem.data("opts");
  var txt = elem.html();
  var len = opts.substr_len;
  var dots = "<span>" + opts.ellipses + "</span>";
  var charAtLen = txt.substr(len, 1);
  while (len < txt.length && !/\s/.test(charAtLen)) {
      len++;
      charAtLen = txt.substr(len, 1);
  }
  var shown = txt.substring(0, len) + dots;
  var hidden = '<span class="hidden" style="display:none;">' + txt.substring(len, txt.length) + '</span>';
  elem.html(shown + hidden);
}

...它会按照您的意愿运行。您可能想要添加一个选项来关闭和打开此功能,但我会将其留给您。

查看工作示例→

You can change the abridge function within that plugin as follows:

function abridge(elem) {
  var opts = elem.data("opts");
  var txt = elem.html();
  var len = opts.substr_len;
  var dots = "<span>" + opts.ellipses + "</span>";
  var charAtLen = txt.substr(len, 1);
  while (len < txt.length && !/\s/.test(charAtLen)) {
      len++;
      charAtLen = txt.substr(len, 1);
  }
  var shown = txt.substring(0, len) + dots;
  var hidden = '<span class="hidden" style="display:none;">' + txt.substring(len, txt.length) + '</span>';
  elem.html(shown + hidden);
}

...and it will behave as you desire. You might want to add an option to turn this feature off and on, but I'll leave that up to you.

See working example →

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文