2011-09-08 5 views
2

jquery ajax呼び出しを使用して処理jsスクリプトをロードする際に問題があります。スケッチは独自のファイルで正常に動作しますが、divにロードすると動作しません。何とかスケッチを初期化する必要がありますか? Processing jsドキュメントを検索しましたが見つかりませんでした。 「/テスト」ファイルからソースを取得している場合、jquery ajax経由でjsをロードしていますか?

<script type="application/processing" data-processing-target="pjs"> 
// code here 
</script> 
<canvas width="760" height="500" id="pjs"></canvas> 

答えて

2

が含まれているキャンバスのためにあなたを新しい処理インスタンスを作成しますおかげ

醜いテストスクリプト

<a href="#" onclick="$.ajax({url: '/test', context: document.body, success: function(text){ $('#container').html(text); }});">Test</a> 

Processing.loadSketchFromSources($('#pjs'), ['mysketch.pde']); 

2番目の引数は、スケッチを構成できるため、配列です。複数のソースファイル。それは動的なコードなら

、単に新しい処理インスタンスを構築:

new Processing($('#pjs'), "/* full sketch code goes here. */"); 

あなたの投稿は「/テスト」へのAJAX呼び出しが生成するものに関してコントロールのいくつかのレベルを示唆しているようだ、私は持っているでしょうスクリプトやキャンバスタグなしでスケッチコードのみを生成し、ページ上にキャンバス要素を生成し、新しいProcessing($( '#canvasid')、callbackdata)コールを呼び出してProcessingにするだけです。 jsは、作成したキャンバスにスケッチコードを読み込みます。

+0

js.erbのサンプルコードは次のとおりです。 js = '<%= escape_javascript render:partial => "auto"、:locals => {:data => @data}%>' ; 新しい処理( 'processing-canvas2'、js); 注 - $( '...')を渡したときに私にとってはうまくいかず、要素のid文字列を渡すだけでした - jqueryビットはありません –

関連する問題