jQuery插件“readmore”,修剪文本而不切词
我正在使用http://rockycode.com/blog/jquery-plugin-readmore/修剪长文本并添加“查看更多”链接以显示所有文本。
我希望避免削减词语,我怎么能这样做?
如果限制为35,请不要切割…
但
如果限制是35,请不要删除单词…(在这种情况下,将其修剪为38,然后显示隐藏文本,从第39个结尾处开始。
您可以更改该插件中的abridge
function,如下所示:
function abridge(elem) { var opts = elem.data("opts"); var txt = elem.html(); var len = opts.substr_len; var dots = "" + opts.ellipses + ""; 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 = ' '; elem.html(shown + hidden); }
……它会按照你的意愿行事。 你可能想要添加一个选项来关闭和打开此function,但我会把它留给你。
见工作示例→
而不是这样做:
$elem.readmore({ substr_len: 35 });
你可以做到这一点
$elem.readmore({ substr_len: $elem.text().substr(0, 35).lastIndexOf(" ") });
我们正在做的是去索引35之前的最新空间。当然,35可以变化。 你也可以把它放到一个函数中重用它。
希望这可以帮助
我刚收集了有关此主题的信息,在您的帮助和我写的其他相关post的帮助下: