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

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

我希望避免削减词语,我怎么能这样做?

如果限制为35,请不要切割…

如果限制是35,请不要删除单词…(在这种情况下,将其修剪为38,然后显示隐藏文本,从第39个结尾处开始。

您可以更改该插件中的abridgefunction,如下所示:

 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的帮助下:

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