Rails truncate with a 'read more' toggle
Rails truncate with a 'read more' toggle
我有一个段落,我想截断与点击"阅读更多"的选项,并有它滑动打开与其余的内容。内容来自数据库字段。下面是截断的内容:
<%= truncate(@major.glance, :length => 250, :omission => '... Read More')%>
我似乎找不到一种方法来处理从数据库中提取的数据。我看到很多使用全文的例子,你想隐藏在一个单独的div标签中的文本。但是,由于这个内容来自数据库,是动态的,我找不到任何关于如何做到这一点的信息。
您可以尝试以下操作
<div>
<% if @major.glance.length > 250 %>
<%= link_to_function truncate(@major.glance, length: 250), "$(this).parent().html('#{escape_javascript @major.glance}')" %>
<% else %>
<%= @major.glance %>
<% end %>
</div>
或者如果您喜欢使用Read more
链接
<div>
<% if @major.glance.length > 250 %>
<%= truncate(@major.glance, length: 250) %>
<%= link_to_function '...Read more', "$(this).parent().html('#{escape_javascript @major.glance}')" %>
<% else %>
<%= @major.glance %>
<% end %>
<div>
由于在Rails 4中,link_to_function
已被弃用,建议使用非引人注目的js,请使用以下
<div>
<% if @major.glance.length > 250 %>
<%= truncate(@major.glance, length: 250) %>
<%= link_to '...Read more', '', class: "read-more-#{@major.id}" %>
<script>
$('.read-more-<%= @major.id %>').on('click', function(e) {
e.preventDefault()
$(this).parent().html('<%= escape_javascript @major.glance %>')
})
</script>
<% else %>
<%= @major.glance %>
<% end %>
<div>
我知道我加入这个话题有点晚了。我一直在解决同样的问题,尝试上面的解决方案,它工作得很好。然而,被隐藏的SEO明智的内容没有被搜索引擎索引。我也检查了Lynx,链接不能被跟踪(很明显)。所以我选择了Jed Foster | readmore.js的这个解决方案——lynx可以正确地阅读它,现在我正在等待SE索引更新,看看我是否可以在搜索结果中找到我自己。以防有人遇到类似的情况……
相关文章:
- jQuery/Javascript.toggleClass/.classList.toggle的特殊行为
- Toggle Switch在包含ng model和ng repeat之后不进行切换
- Toggle Javascript
- 如何分解jQuery"toggle”;函数转换为separate“;显示“;以及“;隐藏“;功能
- 使用bootstrapthoggle动态更改toggle
- 如何从toggle转换为onclick
- Jquery cookie - toggle box
- JQuery Toggle()
- .toggle() 适用于 ACF 中继器中的所有内容
- Toggle已停止在我的网站上工作
- Toggle setLineDash()
- JAVASCRIPT:Toggle中的Toggle不工作问题
- Toggle Ionic Slide Box”;确实继续”;
- jQuery Toggle不适用于本地和我的网站,但适用于jsFiddle
- 在toggleClass中滑动toggle
- toggle函数不'不处理添加的输入
- Like Unlike toggle button with jQuery's AJAX
- jQuery toggle()函数工作不正常
- 将Html.EditorFor替换为Bootstrap Toggle
- Rails truncate with a 'read more' toggle