Как запустить Javascript в шаблоне, пока все скрипты находятся внизу?

Я использую CakePHP, и в шаблоне я помещал каждый скрипт-тег прямо перед закрывающим тегом body, чтобы получить быструю загрузку страницы. Теперь в теле, перед тегами script, есть некоторый код, основанный на jQuery (слайдер и диаграммы). Поэтому я использовал для этого функцию document.ready, но ничего не происходит. Что мне нужно сделать, чтобы получить рабочий скрипт?

Некоторый код для вас, чтобы получить представление:

Шаблон 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, я совершенно не понимаю, почему он не работает. Я полагаюсь на вас, ребята:) Заранее спасибо.

1 ответ

Решение

Похоже, это приводит к тому, что вы пытаетесь использовать $(document).ready() до $ доступен. Вам нужно убедиться, что jQuery загружен, прежде чем делать какие-либо вызовы $(), Попробуйте загрузить jQuery в <head>,

Другие вопросы по тегам