当前位置: 首页 > 面试题库 >

如何使用AJAX提取每个标签的内容?Rails4,Bootstrap3

李勇
2023-03-14
问题内容

我在“事件”页面视图中有4个选项卡部分。我可以在请求事件页面时提取并呈现每个选项卡的所有内容的地方工作。对于扩展性来说,这似乎不是一个好的解决方案。

单击选项卡时,如何使用AJAX获取每个选项卡的内容?

(第一次进行…理论上看起来很简单,但是无法正常工作)

我尝试添加remote: true到选项卡链接,但与页面内引用无法很好地结合-
Events#Show对所有选项卡都执行相同的get请求,这使得很难确定请求的选项卡内容。如果将选项卡href更改为它们各自的控制器链接,则会中断引导程序选项卡的切换。我这两种方式都没有。

每个选项卡的内容都分为单独的控制器,因此可以提取单个内容。

对于Tab#2,我需要获取有效的内容nav-pill。如果我在Tab#2上,我想将其内容从“概述”切换到“详细信息”,然后使用nav- pills按钮链接返回。

使用带有Bootstrap 3,Haml和CoffeeScript的Rails 4。

events / show.html.haml

/ Nav tabs
%ul.nav.nav-tabs.color
  %li.active
    =link_to "Tab1", "#tab1", html_options = { "data-toggle" => "tab" }
  %li
    =link_to "Tab2", "#tab2", html_options = { "data-toggle" => "tab" }
  %li
    =link_to "Tab3", "#tab3", html_options = { "data-toggle" => "tab" }
  %li
    =link_to "Tab4", "#tab4", html_options = { "data-toggle" => "tab" }

/ Tab panes
.tab-content
  .tab-pane.active#tab1
    %p Fetch content
  .tab-pane.active#tab2
    %ul.nav.nav-pills
      %li.active= link_to 'Overview', "#overview", html_options = { "data-toggle" => "tab"}
      %li= link_to 'Details', "#details", html_options = { "data-toggle" => "tab"}
      .tab-content
        .tab-pane.active#overview
          %p Fetch overview
        .tab-pane.active#details
          %p Fetch details
  .tab-pane.active#tab3
    %p Fetch content
  .tab-pane.active#tab4
    %p Fetch content

controllers / events_controller.rb

def show
  # currently have several database queries to get data for each tab :(

  respond_to do |format|
    format.html
    format.js
  end
end

views / events / show.js.erb (是这种remote:true情况,但是应该在每个选项卡的相应控制器视图中)

$('div#tab2').append("<%= escape_javascript(render(partial: 'overview', locals: {names: @names, genders: @genders, ages: @ages})) %>")

问题答案:

这将需要您使用引导选项卡的“ show.bs.tab”事件。我不是Rails家伙,但我在ASP.Net MVC中实现了类似的行为-
使用Ajax在标签页单击中动态获取每个标签页的内容。由于两者都发出HTML,并且我们都在使用ajax,因此我认为对我有用的内容也对您有用。

顺其自然-我在标签“ data-tab-remote”中添加了额外的属性,并在jquery中注册了一个事件处理程序,该事件处理程序从data-tab-
remote属性中指定的URL提取标签内容。标签的href中指定的目标标签内容容器。因此,标签页发出的HTML看起来像这样-

<ul class="nav nav-tabs" style="border-right:solid" id="tabs">
    <li><a href="#tab1" data-toggle="tab" data-tab-remote="/tab1url">Tab1</a></li>
    <li><a href="#tab2" data-toggle="tab" data-tab-remote="/tab2url">Tab2</a></li>
</ul>            
<div class="tab-content">
    <div class="tab-pane fade" id="tab1">

    </div>
    <div class="tab-pane fade in active" id="tab2">

    </div>
</div>

使用此HTML,您需要在文档的加载事件处理程序中调用以下jQuery代码-

$('a[data-toggle="tab"]').on('show.bs.tab', function (e) {
    currTabTarget = $(e.target).attr('href');

    var remoteUrl = $(this).attr('data-tab-remote')
    if (remoteUrl !== '') {

        $(currTabTarget).load(remoteUrl)
    } 
})


 类似资料:
  • 问题内容: 我有一个rpm,我想把它像压缩包一样对待。我想将内容提取到目录中,以便检查内容。我熟悉已卸载软件包的查询命令。我不只是想要rpm内容列表。即 我想检查rpm中包含的几个文件的内容。 我不想安装rpm。 我也知道rpms在%post部分中进行其他修改的能力,以及如何检查这些内容。即 但是,在这种情况下,这与我无关。 问题答案: 您尝试过该命令吗?请参阅以下示例:

  • 问题内容: 我在C#中使用Selenium。我有返回脚本代码的脚本代码。如何从中获取内容? 问题答案: 最好的办法就是使用和访问它。

  • 问题内容: 所以我要做的是使用jQuery的AJAX函数提交表单。我选择的路线是使用$(’#form’)。serialize(); 然后将其作为GET请求传递。在我添加要在网站上使用的编辑器NicEdit之前,它可以解决所有花花公子的问题。 我已经研究了这个问题,情况是这样的,例如,一旦NicEdit接管了一个文本区域,它将对用户隐藏该文本区域,而是将其写入。然后,将这些数据放回普通提交按钮触发的

  • 我使用Jsoup的elements类来获取 爪哇代码 HTML代码

  • 我不确定我的方向是否正确,但我试图实现的目标相当复杂,至少对我来说是这样。所以我要找的是找到HTML类标签中的内容,并在我想要的任何地方显示这些内容。让我们以一个网站上的在线产品为例,假设标题上的代码写得如下: 是的,我知道我可以使用如下变量: HTML: 风格:

  • tr和td的数量可以不同,因为有多个表,我需要xpath格式,如下所示: 我尝试过这样做,但tr顺序每次都不同,唯一的常量是值始终在表中的Series行上 表如下所示,该系列可以从上到下位于不同的位置