0

我在一个循环中有以下 rails 代码,其中包含一个 jquery 对话框的链接。

(此链接中的“report_image”是一个简单地调用图像的辅助方法。)

<%= link_to report_image, "#", :class => "flight_report_opener" %>
  <div id="flight_report_dialog" title=" FLIGHTS REPORT">
    <p>Dialog content</p>
  </div>
<% end %>

当然,问题在于这会在同一页面上生成多个 id="flight_report_dialog" 实例......这会破坏 .dialog 调用。也不能使用类。我试图通过将循环生成的 id (@ratings.each do |rating|) 添加到对话框 div css id 的末尾来更改动态生成的 id。然后通过link_to_function 中的命名函数调用传递它。

<div id="flight_report_dialog_<%= rating %>" title=" FLIGHTS REPORT"> %> </div>

那对我也没有效果。

我觉得我在这里放个屁。希望有人可以帮助我解决这个问题。

如何从动态生成的链接在同一页面上多次调用 jquery 对话框函数。

我目前正在使用的功能是这个......这当然不起作用。实际上,为了清楚起见,该函数工作正常......在 id 的第一个实例上调用:

$("#flight_report_opener").click(
     function() { $( "#flight_report_dialog" ).dialog( "open" ); 
     return false; 
});
4

1 回答 1

0

这是我为解决这个问题所做的。您可以将此代码拼凑到上面的代码中...

在视图中:

<%= link_to report_image, "#", :class => "ground_report_opener", :data => {rating: rating.id} %>
<div class="ground_report_dialog" id="ground_report_dialog_<%= rating.id %>" title=" GROUND REPORT">

在 JS 中:

$(".flight_report_opener").click(function() { 
$( "#flight_report_dialog_"+$('.flight_report_opener').data('rating') ).dialog( "open" ); 
return false; 
});
于 2012-06-19T19:29:23.373 回答