带有Rails的DataTables - 动态显示和隐藏列

时间:2013-03-08 00:42:45

标签: javascript html ruby-on-rails-3.2 coffeescript datatables

我为我的Rails应用安装了DataTables gem,并开始关注this Railscast。一切都很好。

我的目标是允许我的应用的用户隐藏和显示列,因此我阅读了this guide

我从该页面复制了初始化javascript,将其翻译为http://js2coffee.org处的coffeescript,并将以下内容粘贴到我的app / assets / javascripts / drivers.js.coffee文件中:

fnShowHide = (iCol) ->
  oTable = $("#drivers").dataTable()
  bVis = oTable.fnSettings().aoColumns[iCol].bVisible
  oTable.fnSetColumnVis iCol, (if bVis then false else true)
$(document).ready ->
  $("#drivers").dataTable
    sScrollY: "200px"
    bPaginate: false

然后返回DataTables guide,我查看了“切换列”链接的源代码,发现了这个:<a href="javascript:void(0);" onclick="fnShowHide(0);">Toggle column 1<br></a>

所以我将其粘贴到我的app / views / drivers / index.html.erb文件中,结果如下:

<a href="javascript:void(0);" onclick="fnShowHide(0);">Toggle column 1<br></a>
<a href="javascript:void(0);" onclick="fnShowHide(1);">Toggle column 2<br></a>

<table id="drivers" class="display table table-striped table-bordered table-hover table-condensed">
  <thead>
    <tr>
      <th>Last Name</th>
      <th>First Name</th>
    </tr>
  </thead>
  <tbody>
    <% @drivers.each do |driver| %> 
    <tr>
      <td><%= link_to(driver.last_name, driver) %></td>
      <td><%= driver.first_name %></td>
    </tr>
    <% end %>
  </tbody>
</table>

当我访问该网站时,链接正在显示,但它们不起作用。由于我是Rails,javascript和编程的新手,所以我假设我遗漏了一些明显的细节。

0 个答案:

没有答案