2011-09-08 89 views
2

我无法通过jquery ajax调用加载处理js脚本。草图在自己的文件中运行良好,但是当我将它加载到一个div中时,它不起作用。我需要以某种方式初始化草图吗?我搜索了Processing js文档,但无法找到它。由于通过jquery ajax加载处理js?

丑陋的测试脚本

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

在哪里“/测试”将包含

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

回答

2

如果你取从文件的源,创建画布一个新的处理情况下,你想要它加载到,而不是:

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

第二个参数是一个数组,因为草图可以由多个源文件。

如果它是动态的代码,只需建立一个新的处理实例:

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

您的帖子似乎表明相对于什么Ajax调用“/测试”产生一些控制水平,所以我会它只是简单地生成草图代码,没有脚本和画布标记,并且让ajax回调函数在页面上生成canvas元素,接着是一个新的Processing($('#canvasid'),callbackdata)调用,以便处理。 js将草图代码加载到您刚创建的画布中。

+0

如果你在做rails js.erb,这里有一些示例代码: js ='<%= escape_javascript render:partial =>“auto”,:locals => {:data => @data}%>' ; new Processing('processing-canvas2',js); 注意 - 当我传递$('...')时它不起作用 - 只需传递元素的id字符串 - 不需要jquery位 –