Jason,我假设您正在寻找一种方法来更改处于活动状态的选项卡的颜色。
如果正在呈现的 ajax 页面是一个显示视图,请将以下内容添加到 show.js.erb:
由于您没有包含代码,因此我做了两个假设。
假设 1:如果第二页处于活动状态,我假设它看起来像这样:
<div class="top_menu_bar">
<a class="menu_link controller_1" href="/controller_1">The First Controller</a>
<a class="menu_link controller_2 highlighted" href="/controller_2">The Second Controller</a>
<a class="menu_link controller_3" href="/controller_3">The Third Controller</a>
</div>
请注意,如果您的锚标记类中没有控制器名称,您可以轻松添加它们。它将简化您的 JQuery。但是,解决方案的关键部分是遵循我简要概述的两个步骤。您始终可以根据您的代码修改 JQuery 选择器。
假设 2:我假设您有一个 a.highlighted 的 css 规则,这将使任何具有突出显示类的锚从其他锚中脱颖而出。
现在,有了这些假设,让我们讨论一下更改导航的两步解决方案,当您单击页面上使用 Ajax 请求加载的链接或按钮时,说与标签 controller_3 关联的 :show 视图。
你需要做以下两件事:
Step 1: Remove the "highlighted" class from the anchor of
controller_2
Step 2: Add the "highlighted" class to the anchor of controller 3.
您可以通过在 show.js.erb 文件中添加以下内容来做到这一点:
$('.highlighted').removeClass("highlighted");
$('.<%= controller_name %>').addClass("highlighted);
如您所见,我们在提供 show.js.erb 时动态插入 controller_name。请注意,您仍然需要句号前缀。
我相信这应该可以解决问题。上述代码中可能存在语法错误,因此请采用整体概念并将其应用于您的情况。为了您的方便,我在 jsfiddle 上放了一个小示例来演示代码的 javascript 部分。在http://jsfiddle.net/593ce/4/上查看。
我希望这对你有用,并且你认为这个答案是可以接受的。