链接到rails中的特定ajax选项卡

时间:2017-01-02 12:51:09

标签: ruby-on-rails ajax url hyperlink tabs

我有一个问题,我还没有找到答案。

在我的Rails 4应用程序中,我使用了ajax选项卡。以下是代码设置的示例。

show.html.erb

<div id="ajaxtabs">
  <ul class="nav nav-tabs">
    <li><%= link_to 'Members', some_member_path, :remote => true %></li>
    <li><%= link_to 'Hosts', some_host_path, :remote => true %></li>
  </ul> 
</div>
<div class="tab-content">
  <div id="tab-display"></div>
</div>

members.js.erb

$("#tab-display").html("<%= escape_javascript (render partial: 'members') %>");

_members.html.erb

 "This is the partial displayed when the members tab is clicked"

一切都很美妙,但有一个功能我想开始工作,那就是链接到特定标签的功能。

例如,如果我想链接到成员标签,我可以输入网址吗? sitename.com/groups/#members-tab

2 个答案:

答案 0 :(得分:0)

您可以尝试以下内容。

members.js.erb正好$("#tab-display").html("<%= escape_javascript (render partial: 'members') %>");下方,您需要添加

window.location.href= window.location.href + '#members-tab'
#members-tab'是标签名称的值。

答案 1 :(得分:0)

你的css类名看起来就像是在使用Bootstrap。如果是这种情况,那么您可以调用tab函数更改为页面加载时的右侧选项卡。

所以假设你有这样的javascript:

<script type="text/javascript">
    $(function() {
      var hash = document.location.hash;
      if (hash) {
        $('.nav-tabs a[href='+hash+']').tab('show');
      }

      $('a[data-toggle="tab"]').on('show.bs.tab', function (e) {
        window.location.hash = e.target.hash;
      });
    });
</script>

这非常简单 - 它需要来自URL的争论并期望它与标签ID匹配。请注意,如果您在页面上有多个可以使用特殊URL的内容,则可能会出现JS错误。