2011-09-08 4 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']); 

두 번째 인수는 스케치가 다음과 같이 구성 될 수 있으므로 배열입니다. 여러 소스 파일.

는 동적 코드가 있다면, 단순히 새로운 가공 인스턴스 구축 :

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

귀하의 게시물 AJAX 호출이 "/ 테스트"를 생성하는 것에 대한 일정 수준의 제어를 제안 할 것을, 그래서 나는 것 스크립트 및 캔버스 태그없이 스케치 코드 만 생성하고, 페이지에 canvas 요소를 생성 한 다음 새로운 Processing ($ ('# canvasid'), callbackdata) 호출을 처리하도록 처리합니다. js는 방금 만든 캔버스에 스케치 코드를로드합니다.

+0

레일을 사용하는 경우 jrser의 샘플 코드는 다음과 같습니다. js = '<% = escape_javascript render : partial => "auto", : locals => {: data => @data} %>' ; 새 처리 ('processing-canvas2', js); 참고 - $ ('...')를 전달하면 나에게 적합하지 않습니다. 단지 요소의 id 문자열을 전달해야합니다. jquery 비트가 없습니다. –

관련 문제