Javascript AJAX加载的JS不呈现
我的Rails应用程序加载一个包含链接的分部,以及一个加载的脚本,该脚本为每个链接创建Javascript AJAX加载的JS不呈现,javascript,jquery,ruby-on-rails,ajax,Javascript,Jquery,Ruby On Rails,Ajax,我的Rails应用程序加载一个包含链接的分部,以及一个加载的脚本,该脚本为每个链接创建onClick事件 当页面正常加载(而不是通过AJAX)时,这些链接呈现良好 但是,当我通过AJAX加载分部文件时,这些onClick事件不会触发 当我对load\u links\u url执行ajax调用时,其视图包含以下内容: $(“#my_div”).html(“#{j render('links/links',the_links:@links]) onClick事件未触发。为什么呢 部分links/_l
onClick
事件
当页面正常加载(而不是通过AJAX)时,这些链接呈现良好
但是,当我通过AJAX加载分部文件时,这些onClick事件不会触发
当我对load\u links\u 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);
})
看一看这本书
总之,对于动态添加的内容,请使用.on和适当的事件委派选择器。比如,在你的情况下:
$('#my_div').on('click', '.select-link', function(){})
or
$(document.body).on('click', '.select-link', function(){})
@sanka我上面粘贴的部分文件在未通过AJAX渲染时渲染良好,onclick工作良好。只有在动态呈现时,JS才不起作用(链接仍然显示,JS被追加,但onclick事件不会触发)。解决方案调用$(“.select link”)。动态添加代码后单击代码。@sanka在呈现链接后,会呈现$('.select link')
代码,如果这是您要问的。1.呈现静态元素2.执行事件绑定3.添加动态内容4.再次执行事件绑定以获取动态添加的内容|您缺少了第4步。@sanka我明白了。javascript标记也是动态呈现的,它出现在DOM中动态呈现的链接下面。这不是第四步吗?我遗漏了什么吗?不幸的是,这不起作用。即使在动态加载HTML后执行此代码,它也无法工作。