2016-09-10 17 views
-1

My Railsアプリケーションは、リンクを含む部分と、リンクごとにonClickイベントを作成するスクリプトをロードします。AJAXがロードされたJSはレンダリングされません

これらのリンクは、ページが正常に読み込まれたときに正しく表示されます(AJAX経由ではありません)。

しかし、これらのonClickイベントは、AJAX経由でパーシャルをロードするときには発生しません。

私はビューload_links_urlへのAJAX呼び出しを、行う

はこれを含んでいます

$("#my_div").html("#{j render('links/links', the_links: @links)}");

のonClickイベントが発射されていません。何故ですか?

部分links/_links.html.hamlは次のようになります。

-links.each do |link| 
    =link_to link.name, "javascript:;", id: "select_link_#{link.id}", class: "select-link", "data-id" => link.id, "data-name" => link.name 

:javascript 
    $(".select-link").click(function() { 
     var id = $(this).data("id"); 
     var thename = $(this).data("name"); 
     $('#link_name_header').html(thename); 
     $('#creative_session_link_id').val(id); 
    }) 
+0

@sanka上記の貼り付けた部分ファイルは、AJAX経由でレンダリングされていないときにうまくレンダリングされ、onclicksは正常に動作します。動的にレンダリングされるときだけ、JSは機能しません(リンクは引き続き表示され、JSは追加されますが、onclickイベントは発生しません)。 – bevanb

+1

ソリューションコール$( "。select-link")。コードを動的に追加した後でコードをクリックします。 – Sanka

+0

@sanka '$( '。select-link')'コードは、リンク自体がレンダリングされた後にレンダリングされます。 – bevanb

答えて

0

を要約するJquery event handler not working on dynamic content

を見てください、動的に追加されたコンテンツのため、イベント委譲のための適切な選択と.on使用しています。同様に、あなたの場合:

+0

残念ながらこれは動作しません。 HTMLが動的にロードされた後にこのコードを実行しても、動作しません。 – bevanb

関連する問題