現在、ボタンがクリックされたときにパーシャルをロードしようとしています。だから私がやっていることは、リモート=> trueを追加し、次に、これを行う.js.erbファイルに移動するコントローラーアクションにformat.jsを追加することです。
$('#videospan').html('<%= escape_javascript(render :partial => 'newpartial') %>');
現在、videospanにはすでに別のパーシャルがあり、代わりにこのパーシャルを追加しています。これは、html部分に関しては正常に機能します。現在、newpartialにはjavascriptが含まれていますが、残念ながら検出されません。htmlがjavascriptの前にロードされたためですか?HTMLから見えるようにするにはどうすればよいですか?元のhtmlファイルで定義する必要がありますか?
ありがとうございました、
javascriptメソッドの1つ:
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()
});
}
だから今私はそれをjs.erbにも追加することによってjavascriptを渡そうとしているので、今私はjs.erbにこれを持っています:
$('#videospan').html('<%= escape_javascript(render :partial => 'newpartial') %>');
pop = Popcorn.youtube( "#youtube", lec ,{ width: 400, controls: 0});
pop.play();
そこで、#youtube divを含むパーシャルをレンダリングし、その中にポップコーンを使用してビデオを追加します。残念ながら、これらの3行を追加すると、レンダリングも機能しません。
ファイアバグの場合、返された応答を確認すると、次のようになります。
$('#videospan').html(".........");
pop = Popcorn.youtube( "#youtube", http://www.youtube.com/... ,{ width: 400, controls: 0});
pop.controls( false );
pop.play();
それで、すべてが正しく送信されますが、なぜそれが表示されないのですか?