【问题标题】:pass data to javascript from rails view?从rails视图将数据传递给javascript?
【发布时间】:2015-10-05 11:25:58
【问题描述】:

我无法将正确的数据从我的 rails html.erb 视图文件传递到我的 js 文件。

我的控制器 (@messages = Message.all) 和 html.erb 视图文件中有以下内容:

@messages.each do |x|
x.name
end

如果我有一个 javscript 文件,我如何将特定消息的 id 传递给它?

我正在尝试这个:

@messages.each do |x|
<span id="messageid" data-id="<%= x.id %>">
 <%=x.name%>
</span>
end

在我的 javascript 文件中:

$("#messageemail").click(function(){
  var messageid = $("#messageemail").data('id');
alert(messageid);

这部分有效,但它只给了我列表中第一条消息的 id。我希望它给我点击消息的特定 ID

【问题讨论】:

  • messageemail id 的元素在哪里?

标签: javascript jquery ruby-on-rails ruby erb


【解决方案1】:

改为这样做,将 class 添加到您的 span 元素而不是 id

<span class="message-class" data-id="<%= x.id %>">

在 Javascript 文件中

$(".message-class").on('click', function(){
  var messageid = $(this).attr("data-id");
  alert(messageid);
});

这行得通!

【讨论】:

    【解决方案2】:

    在您的 Rails 视图中:

    <span  onclick="callJS(<%= x.id %>)">
     <%=x.name%>
    </span>
    

    点击 span 时将调用 callJS 函数。

    在js中:

    // in your js file
     function callJS(x_id){
      console.log(x_id);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      • 2013-08-12
      • 2016-04-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多