我在循环中有以下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;
});
答案 0 :(得分: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;
});