gpt4 book ai didi

javascript - 带 Bootstrap 选项卡的 Rails

转载 作者:数据小太阳 更新时间:2023-10-29 03:55:38 26 4
gpt4 key购买 nike

我有一个 Rails 4 应用。

我正在尝试合并 Bootstrap 选项卡。

阅读 Bootstrap 文档,它说这样做的一种方法不涉及任何 js。我已经尝试了文档中的每一种方法,但无法在我的应用程序中使用它们中的任何一种。

我目前的尝试是:

<ul class="nav nav-tabs nav-justified">
<li role="presentation" class="active"> <a href="#terms" aria-controls="terms" role="tab" data-toggle="tab">Terms</a></li>
<li role="presentation"> <a href="#privacy" aria-controls="privacy" role="tab" data-toggle="tab">Privacy</a></li>
<li role="presentation"> <a href="#licence" aria-controls="licence" role="tab" data-toggle="tab">Licence</a></li>
<li role="presentation"> <a href="#trust" aria-controls="trust" role="tab" data-toggle="tab">Trust</a></li>
<li role="presentation"> <a href="#reliance" aria-controls="reliance" role="tab" data-toggle="tab">Reliance</a></li>
<li role="presentation"> <a href="#pricing" aria-controls="pricing" role="tab" data-toggle="tab">Pricing</a></li>

</ul>

<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="terms"><%= render 'pages/legalpolicies/terms' %></div>
<div role="tabpanel" class="tab-pane" id="privacy"><%= render 'pages/legalpolicies/privacy' %></div>

<div role="tabpanel" class="tab-pane" id="licence"><%= render 'pages/legalpolicies/licence' %></div>
<div role="tabpanel" class="tab-pane" id="trust"><%= render 'pages/legalpolicies/trust' %></div>

<div role="tabpanel" class="tab-pane" id="reliance"><%= render 'pages/legalpolicies/reliance' %></div>
<div role="tabpanel" class="tab-pane" id="pricing"><%= render 'pages/legalpolicies/pricing' %></div>

</div>

效果是在页面顶部给我一个标签栏。选项卡是可单击的。

然而,每个单独的选项卡内容 Pane 中的所有内容仅显示在一个大的长文本页面中。链接无效。

任何人都可以看到让这个工作需要什么吗?

我在文档中读到了这个声明:

您只需在元素上指定 data-toggle="tab"或 data-toggle="pill"即可激活选项卡或药丸导航,而无需编写任何 JavaScript。

我理解这意味着不需要 js。

无论如何,我尝试在我的 javascripts 文件夹中制作一个 privacy.js 文件并添加:

$('#myTabs a').click(function (e) {
e.preventDefault()
$(this).tab('show')
})

那没有做任何事。

我尝试将其移动到我的 application.js 文件中。没有不同。需要更多的js吗?这对我来说很奇怪,因为我在 html 中没有任何名为#myTabs 的东西。是否还需要其他东西才能让它发挥作用?

Gem 文件有:

gem 'sass-rails', '~> 5.0'
gem 'bootstrap-sass', '~> 3.3.5'

样式表有一个名为:framework_and_overrides.css.css 的文件,其中有:

@import "bootstrap-sprockets";
@import "bootstrap";
@import "font-awesome-sprockets";
@import "font-awesome";

Javascripts 文件夹中有一个名为 application.js 的文件,其中包含:

//= require underscore
//= require gmaps/google
//= require jquery
//= require bootstrap-sprockets
//= require jquery_ujs
//= require_tree .

因此 - 按照有关 bootstrap-sass gem 设置的建议(对于 Ruby on Rails,我更改了样式表和 js 文件。

具体来说,那个 gem 说:

Then, remove all the *= require_self and *= require_tree . statements from the sass file. Instead, use @import to import Sass files.

Do not use *= require in Sass or your other stylesheets will not be able to access the Bootstrap mixins or variables.

我将应用程序样式表的名称从 application.css.scss 更改为 application.scss。

我将该文件的内容更改为:

 @import "framework_and_overrides.css.scss";
@import "require_self";
@import "require_tree .";
*/

我更改了我的 framework_and_overrides.css.scss 文件的内容以包括:

@import "bootstrap-sprockets";
@import "bootstrap";
@import "font-awesome-sprockets";
@import "font-awesome";
@import "bootstrap-slider";

我的 application.js 文件有:

//= require underscore
//= require gmaps/google
//= require jquery
//= require bootstrap-sprockets
//= require bootstrap-slider
//= require jquery_ujs
//= require_tree .

这不会产生积极影响。它删除了我页面上的所有样式,删除了所有 Bootstrap 样式,并且通常把一切都搞砸了。它不会将选项卡链接连接到选项卡内容。

我被卡住了 - 真的想了解如何在 Rails 4 中使用 Bootstrap Tabs。非常感谢任何建议。

当我改回它时,至少样式会反射(reflect)出来,但 js 选项卡不起作用(无论哪种情况)。

另一次尝试:

当我将 import bootstrap 添加到我的 application.js 的顶部时:

@import "bootstrap";
//= require underscore
//= require gmaps/google
//= require jquery
//= require bootstrap
//= require bootstrap-sprockets
//= require bootstrap-slider
//= require jquery_ujs
//= require_tree .

在此示例中,页面顶部的选项卡起作用,因此页面跳转到相关文本选项卡的开始位置。那不是我想要的。我希望包含该文本的部分显示在页面顶部(并隐藏每个其他部分中的文本)- 如选项卡的 Bootstrap 示例所示。

最佳答案

我在 Bootstrap DOC 中阅读了以下内容:

Using navs for tab panels requires JavaScript tabs plugin For tabs with tabbable areas, you must use the tabs JavaScript plugin. The markup will also require additional role and ARIA attributes – see the plugin's example markup for further details.

所以你可能需要添加到 application.js:

//= require bootstrap

包括:

   //= require bootstrap-sprockets

还不够:

bootstrap-sprockets provides individual Bootstrap Javascript files (alert.js or dropdown.js, for example), while bootstrap provides a concatenated file containing all Bootstrap Javascripts

关于javascript - 带 Bootstrap 选项卡的 Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33685338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com