【问题标题】:Trunk8 jquery plug-in only truncates until first breaking space. How do I truncate a whole post?Trunk8 jquery 插件只截断直到第一次破格。如何截断整个帖子?
【发布时间】:2013-02-05 02:56:42
【问题描述】:

我正在使用带有rails (http://jrvis.com/trunk8/#toggle) 的trunk8 jquery 插件,它只截断前几句直到第一个空格。这是我的代码:

<%= simple_format(@post.summary, id:"t8-toggle") %>

如何确保它截断整个帖子?谢谢!

【问题讨论】:

    标签: javascript jquery ruby-on-rails ruby truncate


    【解决方案1】:

    使用lines 参数指定截断前要显示的文本行数。默认情况下,trunk8 只会截断一行文本。这是一个例子:http://jrvis.com/trunk8/#lines

    结合切换示例,您的 JavaScript 应该如下所示:

    $('#t8-toggle').trunk8({
      fill: '&hellip; <a id="read-more" href="#">read more</a>',
      lines: 6, //update this number as desired
    });
    

    使用trunk8 的优点是它在截断之前最大化了可见文本的数量。通过使用 Brian Petro 答案中的代码,您将在固定数量的字符后截断,这可能是最佳的,也可能不是最佳的。

    披露:我是trunk8插件的创造者。

    【讨论】:

      【解决方案2】:

      为什么不直接使用 RoR 版本?

       <%= simple_format truncate(@post.summary, length: 140) %>
      

      【讨论】:

      • 谢谢,但我想在显示前几句话和显示完整帖子之间切换,插件的切换功能中有更多/更少的链接。
      • 'def return' 在您的帖子控制器文件中。在您的 views/posts 文件夹中,创建一个 return.js.erb 文件。使用 js/erb 检索@post.summary。使用 jQuery 在包含截断文本的 div 之前添加。如果您正在缓存您的网站,这将非常有效。
      • ^^^ 尝试填补空白。如果您不能只发布更多问题。
      • 难道我不能通过 coffeescript 或 trunk8.js 文件来做到这一点吗?
      • Coffeescript 是 JS,只是另一种语法。 Trunk8 正在加载多余的库。但基本上你的答案是肯定的,但是,还有很多其他方法可以做到这一点。以上是我如何为扩展应用程序做的。最后,关键在于你做了什么,而不是你是怎么做的。因此,我鼓励您通读 Trunc8 的文档并与社区分享您的发现。
      猜你喜欢
      • 1970-01-01
      • 2023-03-24
      • 2020-08-02
      • 2010-12-07
      • 1970-01-01
      • 2012-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多