【问题标题】:Onclick/Javascript for div; Rails iterator用于 div 的 Onclick/Javascript; Rails 迭代器
【发布时间】:2014-03-12 23:13:39
【问题描述】:

我有一个目录页面,列表在索引页面上呈现。

<% @listings.each do |listing| %>
  # do some stuff
<% end %>

我为每个列表添加了一个数据切换 - 基本上是一个按钮。

 <a id="chat-menu-toggle" href="#dr" class="chat-menu-toggle" >
   <div class="iconset top-chat-dark ">
      <span class="badge badge-important hide" id="chat-message-count">1
      </span>
   </div>                 
  </a>

此数据切换打开一个 STATIC div。 div 是一个带有内容的滑块。

<div id="dr" class="chat-window-wrapper">

我想使用每个按钮将listing.id 传递给一个变量。然后,我可以在整个 div 中使用该 ID。

例如:

带有 ID 的列表:

  • 堆栈 - 1
  • 溢出-2
  • 红宝石 - 3
  • 导轨 - 4
  • 点击 - 5

假设我单击 id 为 3 的“Ruby”按钮,我希望像这样传递 id。

 variable = 3

 <div id= <%= variable %> class="chat-window-wrapper">

【问题讨论】:

    标签: javascript jquery html ruby-on-rails


    【解决方案1】:

    不确定“在整个 div 中使用该 ID”是什么意思。但如果对你有帮助,你可以试试这个?

    <div data-id="<%=listing.id %>" class="chat-window-wrapper">
    

    如果您想从 ruby​​ 打印的内容中获取 id 的值,那么您可以尝试添加事件侦听器

    $(".chat-window-wrapper").on("click",function() { 
        var x = parseInt($(this).attr('data-id');
    }
    

    要访问迭代器之外的列表,请尝试

    listings[index] 
    

    @allListings = listings. Then access @allListings[index]
    

    但就我生疏的 ruby​​ 知识而言,我认为只要控制器在上下文中将列表传递给视图,就应该可以访问列表。

    【讨论】:

    • listing.id 不太可能重复,因此保留id 可能更适合 DOM 查询。我认为问题只是您显示的id 值周围的引号。 +1
    • "在整个 div 中使用该 ID。" => 我的意思是,如果我可以将该 ID 作为变量获取。我可以在 Rails 查询中使用它。 IE。 Thing.find(变量)
    • @miler350,你打算如何执行Thing.find(variable)?该点击事件是否有任何 ajax 调用?
    • 不,但可能需要。我是js的新手。这就是它当前的工作方式——当您单击按钮时,主要内容 div 向左移动 ~300px 并创建一个额外的页面列。我想让该列的内容动态化。问题是 div 代码在迭代器之外,所以我需要从迭代器中获取 id,并在页面的其他地方使用它。
    • @user3413046 - 我需要访问迭代器之外的列表 ID。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 2011-02-08
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    相关资源
    最近更新 更多