我有两个部分,一个称为 _contents.html.erb,它加载了 D3.js 的一些标签,另一个是 _show.js.erb,它在 JavaScript 中加载以与 _contents 中的标签进行交互。但是,JavaScript 只在页面加载时执行,所以我不确定如何让 JavaScript 在注入时执行。
这是 show.js.erb,其中调用了部分:
$("body").append( "<%=j render :partial => 'contents', :locals => {:folder => @folder } %>" );
$("#jscripts").append("<%=j render :partial => 'show', formats: :js, :locals => {:folder => @folder} %>");
这是_show.js.erb:
var data;
d3.json("/folders/<%= @folder.id %>.json"), function(error, json) {
if (error) return console.warn(error);
data = json;
var svg = d3.select("svg"),
folderChildren = [],
circle;
var submissions = data.submissions;
for(submission in submissions) {
var submissionWords = submission.content.split(' ').join('');
var size = submissionWords.length;
folderChildren.push(size);
};
circle = svg.selectAll("circle")
.data(folderChildren)
.enter().append("circle")
.attr("cy", 90)
.attr("cx", String)
.attr("r", Math.sqrt);
circle.exit().remove();
};
第二行注入了部分 JS,当我签入我的 Chrome 开发者控制台时,它确实成功地将它与我的 JavaScript 的其余部分一起注入。现在,我如何让它执行?