2013-04-19 4 views
0

시나리오 : Canvas 기반 포트폴리오 항목이 ajax 기반 페이지 매기기로 표시됩니다.ajax 호출 후 캔버스 자바 스크립트 다시로드

문제점 : ajax로 콘텐츠의 다음 페이지를로드 한 후 스크립트 태그가 캔버스 태그 안에 없습니다.

시도 : 캔버스 태그 앞에 스크립트 태그를 추가하면로드되지 않으므로 스크립트를로드하는 데 문제가 발생합니다.

조사 : jquery script not working : 보안 때문에 스크립트를 검색 할 수없는 것 같습니다.

가능한 대안 : 캔버스 태그 외부에서 캔버스 콘텐츠를 추가하지만 동적으로 생성 된 포트폴리오 제목 태그를 전달하는 데 어려움이 있습니다!

코드 :

<ul id="products-list"> 
     <?php 
      $i = 0; 
      while($the_list->have_posts()): $the_list->the_post(); //wordpress loops through posts 
     ?> 

     <li class="product-item<?php echo $i;?>"> 
      <script>functionForMakingACanvasOverlayUsingThePostTitle("<?php echo get_the_title() ?>");</script> 
      <canvas></canvas> 
     </li> 

     <?php $i++; ?> 

    <?php endwhile; ?> 
    </ul> 

6 항목이 한 페이지 당 표시하고 다음 버튼이 다음 6 개 항목

제안을 호출하는 아약스를 사용? 감사.

+0

왜 당신이에 캔버스 태그 내부에 스크립트 태그를 넣을까요 처음? 어쨌든, 코드를 보지 않고는 아무 말도하지 않는 것이 꽤 어렵습니다. – JJJ

+0

코드가 추가되었습니다. 감사합니다. 또한 캔버스 태그 안에 스크립트를 넣지 않는 것이 맞습니까? 내 설명서에는 w3이 있습니다. http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_canvas_tut_text2 – timhc22

+1

[w3schools는 가장 신뢰할 수있는 출처가 아닙니다.] (http://w3fools.com) 그러나이 경우 해당 페이지의 코드를 자세히 보면 스크립트 태그가 실제로 캔버스 태그 외부에 있음을 알 수 있습니다. – JJJ

답변

1

myYou는 가장 싫어하는 eval 메서드를 호출하지 않고도 AJAX를 사용하여 자바 스크립트 코드를 추가 할 수 없습니다. 그리고 당신의 경우에, 당신은 필요가 없습니다. 당신의 대답은 자바 스크립트를 직접 호출하는 것이 아니라 객체에서 외부 자바 스크립트를 호출하는 것입니다. 당신이 우리를 준 코드는 아래에있는 내 생각은 데모 용으로 순수하므로, 매우 스파 스 - 당신은 실제 상황 번역해야합니다 :

<canvas><div id="mytitle"></div></canvas> 
<script> 
    function drawTitleOverlay(title){ 
     var titleoverlayhtml = buildTitleOverlayHTMLFromTitle(title); 
     document.getElementById('mytitle').innerHTML = titleoverlayhtml; 
    } 

    function nextPage(){ 
     var data = getAJAXData(); 
     var title = getTitleFromData(data); 
     drawTitleOverlay(title); 
    } 
</script> 
+0

좋은 소리, 유일한 문제는 거기에 여러 캔버스가 될 것입니다 : 거기 mytitle1 mytitle2 .. 등 거기에 미지의 번호 mytitle1 mytitle2 얻을 것이다 document.getElementById 주위에 놓을 수있는 루프입니다 항목 중? – timhc22

+0

캔버스에있는 각 div 개체에 대한 참조를 얻는 방법은 많지만 실제 코드를 보지 않아도 가장 좋은 것을 추천 할 수는 없습니다. 그러나 AJAX 데이터에는 각 DIV 태그에 대한 데이터가 포함되며 데이터에는 태그의 ID도 포함됩니다. 바로 거기에서 모든 태그의 ID를 이미 보유하고 있습니다. 그냥 반복하십시오. –

+0

코드가 주요 질문에 추가되었습니다! – timhc22

관련 문제