0

我正在尝试将addthis (smartlayers) js 集成到我的 rails 4 应用程序中

我在两个页面上添加了代码,例如(显示模板,编辑模板)

当我使用链接从一个页面导航到另一个页面时,我看不到图标工作

当我刷新页面时,我可以看到图标。我用谷歌搜索,发现在 Rails 上这些页面使用 turbolinks 导航。

我已经尝试过这个解决方案,无法解决。

这是我的编辑模板

    <h1>Editing product</h1>

<%= render 'form' %>

<%= link_to 'Show', @product %> |
<%= link_to 'Back', products_path %>
<!-- Go to http://www.addthis.com/get/smart-layers to customize -->
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5270a69567915956"></script>
<script type="text/javascript">
  addthis.layers();
</script>
<!-- AddThis Smart Layers END -->
<!-- AddThis Button END -->

和我的表演模板

<p id="notice"><%= notice %></p>

<p>
<%= image_tag @product.photo.url(:medium) %>
</p>
<p>
  <strong>Title:</strong>
  <%= @product.title %>
</p>

<p>
  <strong>Sku:</strong>
  <%= @product.sku %>
</p>

<p>
  <strong>Description:</strong>
  <%= @product.description %>
</p>

<p>
  <strong>Price:</strong>
  <%= @product.price %>
</p>


<%= button_to 'Add to cart', line_items_path(:product_id => @product), :class =>"btn btn-success" %>
<%= link_to 'Edit', edit_product_path(@product) %> |
<%= link_to 'Back', products_path %>

<!-- AddThis Smart Layers BEGIN -->
<!-- Go to http://www.addthis.com/get/smart-layers to customize -->
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5270a69567915956"></script>
<script type="text/javascript">
  addthis.layers();
</script>
<!-- AddThis Smart Layers END -->
4

1 回答 1

0

我也遇到了这个问题,这是因为 Turbolinks 没有完全重新加载页面,它只是抓取正文,所以你是 JS 或 CoffeeScript 没有加载到新页面上。

修理:

放在ready = ->CoffeeScript 文件的顶部并放在文件$(document).ready(ready) $(document).on('page:load', ready)的末尾。

像这样:

ready = ->
.
.
.
$(document).ready(ready)
$(document).on('page:load', ready)

您可以在Turbolinks GitHub上阅读有关代码的信息。

于 2013-10-30T10:54:40.363 回答