Meine Rails-App lädt einen Teil, der Links enthält, und ein geladenes Skript, das für jeden Link onClick
Ereignisse erstellt.AJAX-geladene JS wird nicht gerendert
Diese Links werden gut dargestellt, wenn die Seite normal geladen wird (nicht über AJAX).
Diese OnClick-Ereignisse werden jedoch nicht ausgelöst, wenn ich die partielle über AJAX laden.
Wenn ich einen Ajax-Aufruf zu load_links_url
tun, Ansicht, deren enthält diese:
$("#my_div").html("#{j render('links/links', the_links: @links)}");
Die onClick Ereignisse Brennen nicht. Warum das?
Die partielle links/_links.html.haml
sieht wie folgt aus:
-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 Die Teildatei, die ich oben eingefügt habe, ist gut, wenn nicht über AJAX gerendert, und die onclicks funktionieren gut. Nur wenn es dynamisch gerendert wird, funktioniert das JS nicht (die Links werden immer noch angezeigt, und das JS wird angehängt, aber die onclick-Ereignisse werden nicht ausgelöst). – bevanb
Lösung Anruf $ (". Select-Link"). Klicken Sie auf Code nach dem dynamischen Hinzufügen von Code. – Sanka
@sanka Der '$ ('. Select-link')' Code wird gerendert, nachdem die Links selbst gerendert wurden, falls Sie das fragen. – bevanb