2013-06-24 1 views
0

나는 CakePHP를 사용하고 템플릿에서 빠른 pageload를 얻기 위해 모든 script-tag를 닫는 body 태그 바로 앞에 내려 놓았습니다. 이제 본문에서 스크립트 태그 앞에 jQuery (슬라이더 및 차트)에 의존하는 코드가 있습니다. 그래서 document.ready-function을 사용했지만 아무 일도 일어나지 않습니다. 작업 스크립트를 작성하려면 무엇을해야합니까?모든 스크립트가 맨 아래에있는 동안 템플릿에서 Javascript를 실행하는 방법은 무엇입니까?

당신은 통찰력을 얻을에 대한 몇 가지 코드 :

슬라이더 기능, 예를 들어이 인출 된 내용에 템플릿의 index.php

... html stuff ... 
... the following line fetches the content which contains jQuery functions ... 
<?php echo $this->fetch('content'); ?> 
... html stuff ... 
<?php 
    echo $this->Html->script('jquery'); 
    echo $this->Html->script('jquery-ui-1.9.1'); 
    echo $this->Html->script('rhinoslider-1.05'); 
    echo $this->fetch('script'); 
    echo $scripts_for_layout; 
    echo $this->Js->writeBuffer(); // Write cached scripts 
?> 
</body> 

:

$(document).ready(function() { 
    $('#slideshow').rhinoslider(); 
}); 

내 접근 방식 : 나는 그것도 창문으로 시도했다. 어떤 것도 작동하지 않는다. document.ready-와 onload-functions에 대한 나의 이해로 인해, 나는 그것이 작동하지 않는 이유를 전혀 알지 못한다. 나는 너희들에게 의지한다. :) 미리 감사드립니다.

+0

필요한 스크립트가 실제로로드되기 전에 스크립트를 실행하는 것처럼 보입니다. 스크립트를로드 한 후에'fetch ('content')'를 움직이면 어떻게됩니까? –

+0

콘솔에서 오류가 발생합니까? 또한 jquery 실제로로드하는 경우 확인해야합니까? – jycr753

+0

감사합니다. 아래 답변이 핵심이었습니다. – Karl

답변

0

을 사용하기 전에 $(document).ready()을 사용하려고합니다. $()을 호출하기 전에 jQuery가로드되어 있는지 확인해야합니다. <head>에서 jQuery를로드 해보십시오.

+0

고마워요, 그게 다예요 :) Dumb error of me : D $ (document) .ready 대신 DOMCOntentLoaded를 사용하는 것이 좋은 습관입니까? – Karl

+0

@ 칼 쉽게 실수를 저지르고, 몇 번이나 해냈습니다. '$ (document) .ready (function() {/ * code here * /}); '가 아마도 가장 좋습니다. jQuery를로드하는 한 괜찮습니다. [.ready 이벤트] (http://api.jquery.com/ready/)에서 jQuery 페이지를 읽는 것이 좋습니다. 기꺼이 도와주세요. –