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);
})
@sanka上記の貼り付けた部分ファイルは、AJAX経由でレンダリングされていないときにうまくレンダリングされ、onclicksは正常に動作します。動的にレンダリングされるときだけ、JSは機能しません(リンクは引き続き表示され、JSは追加されますが、onclickイベントは発生しません)。 – bevanb
ソリューションコール$( "。select-link")。コードを動的に追加した後でコードをクリックします。 – Sanka
@sanka '$( '。select-link')'コードは、リンク自体がレンダリングされた後にレンダリングされます。 – bevanb