0

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 呼び出しが中断されます。クラスも使えません。ダイアログのdiv css idの最後にループ(@ratings.each do |rating|)で生成された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 に答える