Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AJAX加载的JS不呈现_Javascript_Jquery_Ruby On Rails_Ajax - Fatal编程技术网

Javascript AJAX加载的JS不呈现

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

我的Rails应用程序加载一个包含链接的分部,以及一个加载的脚本,该脚本为每个链接创建
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后执行此代码,它也无法工作。