【发布时间】:2013-03-27 20:09:59
【问题描述】:
我目前正在尝试在单击按钮时加载部分内容。所以我要做的是添加一个远程 => true,然后在控制器操作中添加一个 format.js,该操作将转到我执行此操作的 .js.erb 文件:
$('#videospan').html('<%= escape_javascript(render :partial => 'newpartial') %>');
现在videospan 已经有一个不同的部分,现在我要添加这个部分。当涉及到它的 html 部分时,这很好用。现在 newpartial 里面有一些 javascript,不幸的是没有检测到。是因为 html 是在 javascript 之前加载的吗? 如何使它对 HTML 可见?我必须在原始的html文件中定义它吗?
谢谢,
其中一种 javascript 方法:
function saveAll()
{
for(key in storedData){
storedData[key].push.apply(storedData[key],[$('#'+key).position().top,$('#'+key).position().left]);
}
$.getJSON('<%= save_answers2_course_lecture_path(@course, @lecture) %>',{"stored":storedData}, function(resp){
redirect()
});
}
所以现在我试图通过将 javascript 添加到 js.erb 来传递它,所以现在我在 js.erb 中有这个:
$('#videospan').html('<%= escape_javascript(render :partial => 'newpartial') %>');
pop = Popcorn.youtube( "#youtube", lec ,{ width: 400, controls: 0});
pop.play();
所以我想渲染其中有一个#youtube div 的部分,然后我想使用爆米花向它添加视频。不幸的是,当我添加这 3 行时,甚至渲染都不起作用..
使用 firebug,当我检查返回的响应时,它看起来像这样:
$('#videospan').html(".........");
pop = Popcorn.youtube( "#youtube", http://www.youtube.com/... ,{ width: 400, controls: 0});
pop.controls( false );
pop.play();
所以一切都发送正确,但怎么不显示呢?
【问题讨论】:
-
没有检测到newpartial中的javascript是什么意思?
-
jQuery 不会检测到您传递给
#html()的字符串中有javascript代码 -
@JohnNaegle 我的意思是我在那个部分有一些 javascript 方法。当我打电话给他们时,他们找不到。
-
@KaiKönig 哦,好吧,还有其他方法可以传递部分代码以及它的 javascript 代码吗?
-
发布在 newpartial 中定义的 javascript
标签: javascript ruby-on-rails partial-views