【问题标题】:Some functions are not working after reloading page in rails在rails中重新加载页面后某些功能不起作用
【发布时间】:2016-11-15 22:26:05
【问题描述】:

我有一个导航栏和侧边栏。在导航栏中,我有一个搜索框、侧边栏最小化按钮、配置文件下拉框和注销。

在侧边栏中我有家、关于、订单和联系我们。

我的腐烂页面是主页。加载根页面后,某些图像未显示。它在单击侧栏中的主页链接后显示。下拉列表也会发生同样的事情,并且在重新加载页面后也无法正常工作。我也在使用 jquery 插件。

//= require jquery  
//= require jquery_ujs  
//= require turbolinks  
//= require_tree .

请帮助我解决我的问题需要添加哪些代码。我是 Rails 新手,谢谢。
更新

<div class="table-responsive">
                            <table class="table table-actions-bar m-b-0">
                                <thead>
                                    <tr>
                                        <th></th>
                                        <th>product Name</th>
                                        <th>product status</th>
                                        <th style="min-width: 80px;">Manage</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <% i =0 %>
                                    <% @products.each do |products| %>
                                    <% if i == 0 %>
                                    <tr>
                                        <td><span data-plugin="peity-bar" data-colors="#5fbeaa,#5fbeaa" data-width="80" data-height="30">5,3,9,6,5,9,7,3,5,2</span></td>
                                        <td><img src="assets/products/iphone.jpg" class="thumb-sm pull-left m-r-10" alt=""> <%= product['productname'] %> </td>
                                        <% if product['status'] != "buy" %>
                                        <td><span class="text-custom"><%= product['status'] %></span></td>
                                        <% else %>
                                        <td><span class="text-danger"><%= produt['status'] %></span></td>
                                        <% end %>
                                        <td>
                                          <a href="#" class="table-action-btn"><i class="md md-edit"></i></a>
                                          <a href="#" class="table-action-btn"><i class="md md-close"></i></a>
                                      </td>
                                  </tr>  

这是根据数据绘制的图表..

【问题讨论】:

  • 删除turbolinks它会解决你的问题
  • 删除时显示错误 //= require turbolinks "Sprockets::FileNotFound in product#index 找不到类型为 'application/javascript' 的文件 'turbolinks'"
  • 你重启服务器了吗?
  • 重新启动了我的服务器,但其他一些 jquery 按钮不起作用..
  • 你在网页源码中看到你的js文件了吗

标签: javascript jquery ruby-on-rails reload


【解决方案1】:

您是否尝试过首先使用 jquery.turbolinks gem?

jQuery-turbolinks

它是为 Turbolinks 3 或更低版本量身定制的,但如果您已经跳到 5,则可以下载 Turbolinks 5 垫片并将其放入您的设备中。

Turbolinks compatibility shim

【讨论】:

  • 这是我的宝石:- gem 'turbolinks' gem 'jquery-turbolinks'
【解决方案2】:

这很可能发生,因为您没有将 js 脚本包装在 $(document).ready 调用中。您可以将 turbolinks 添加回您的 application.js 文件,然后将所有 js 脚本包装在 page:load 调用中,如下所示:

var ready;
ready = function() {

  ...your javascript goes here...

};

$(document).ready(ready);
$(document).on('page:load', ready);

当由于 turbolinks 仅获取应用的一部分时,page:load 将触发。

如果你有 RAILS 5,你可以这样做:

$(document).on('turbolinks:load', function() {

  ...your javascript goes here...

});

【讨论】:

  • 实际上我正在使用 jquery 插件,如 jquery-peity、jquery-chat...如何添加到这些文件中?
  • 在你的视图中发布你调用这些库的地方,我会告诉你的。
猜你喜欢
  • 1970-01-01
  • 2011-09-14
  • 1970-01-01
  • 1970-01-01
  • 2015-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多