2013-06-24 14 views
0

我使用CakePHP,並在模板中將每個腳本標籤都放在關閉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(); 
}); 

我的方法: 我也試過它window.onload也不工作。由於我對document.ready和onload函數的理解,我絕對沒有任何進一步的線索說明它爲什麼不起作用。我依靠你們:)先謝謝了。

+0

它看起來像你試圖在實際加載所需腳本之前運行腳本。加載腳本後如果移動'fetch('content')'會發生什麼? –

+0

在控制檯上是否有任何錯誤?還有你檢查jQuery是否實際加載? – jycr753

+0

謝謝你們,下面的答案就是關鍵。 – Karl

回答

0

看起來像這樣的結果,您在$可用之前嘗試使用$(document).ready()。您需要確保在您撥打$()之前加載jQuery。嘗試在<head>中加載jQuery。

+0

謝謝,就是這樣:)我的愚蠢錯誤:D它是好的做法,使用DOMCOntentLoaded而不是$(document).ready然後呢? – Karl

+0

@Karl容易犯的錯誤,自己做了幾次。 '$(document).ready(function(){/ * code here * /});'可能是最好的。只要你已經加載jQuery就沒問題。值得閱讀[.ready事件](http://api.jquery.com/ready/)上的jQuery頁面。樂意效勞。 –

相關問題