2017-08-07 2 views
0

ビューでは、コレクションを繰り返して、それぞれについてさまざまな情報セットを記入します。このコレクションの各値には、選択肢に基づいて特定のdivを入力したいドロップダウンメニューがあります。未知のidsを持つオブジェクトのJavascriptリスナー

<% @model.samples.each do |sample| %> 
    <div class="top"> 
    <%=fields_for 'asample[]', sample, do |a_form| %> 
     Dropdown: <%=a_form.select..........{id: "ex#{sample.id}"} %> 
    </div> 
    <div id="hold_partial> 
     <%= render partial: "/folder/dropdown_based_partial" %> 

私はこれを定期的に行う方法を理解していますが、私はサンプル中の可能性のあるサンプルごとにユニークなリスナーを得る方法がわかりません。提案は抽象的なjsクラスでしたが、私はそれがどのように機能するか100%自信がありません。助言がありますか?これがはっきりしない場合、私はさらに詳しく説明することができます。

答えて

0

私が最初に遭遇する問題は、複数のdivid="hold_partial"とすることです。 (ところで、あなたは"hold_partialの最後に行方不明"を持って

さて、あなたが何か行うことができます:あなたのoptiondata-sample-idを持っており、あなたがそのあなたのユニークなid sのdiv秒を持つように

<% @model.samples.each do |sample| %> 
    <div class="top"> 
    <%=fields_for 'asample[]', sample, do |a_form| %> 
     Dropdown: <%=a_form.select..........{id: "ex#{sample.id}", 'data-sample-id': sample.id} %> 
    </div> 
    <div id="hold-partial-#{sample.id}"> 
     <%= render partial: "/folder/dropdown_based_partial" %> 

を。

0:あなたの options.data(sampleId)に基づいてターゲットにすることができ

を次に、次のような.on 'change'イベント何かをターゲットにすることができます

物事のカップル:

  • 私の傾向は、あなたが欲しいあなたのページの束を持って、あなたがた場合に(必要な選択からのイベントをキャッチしているように、あなたの選択にクラスを追加することですの異なる行動)。
  • e.currentTargetは、changeイベントを生成した要素を提供します。そこから、.data('sampleId')はあなたのループに割り当てたidを与えます。

HTH。

+0

ありがとうございます。私は私が持っているもののためのより一般的な例を与えることを試みていた、私はそれを残しました、私の謝罪。だから私はレールやjavascriptの中で最も流暢ではない... 'data-sample-id'を追加すると、任意のオプションが選択されたときにpartialのdivを呼び出すための正しいIDが得られる。私はまだこれらの可能なx量の変更のためのリスナーを作成する方法を完全に従っていないのですか? – thatdude99

+0

JQueryを使用していますか?それとも普通のJSですか? – jvillian

+0

JQuery。 "余分なテキストが限界に達する..." – thatdude99

関連する問題