Можно ли загрузить Jquery в теле страницы? - PullRequest
4 голосов
/ 31 августа 2010

Я использую воспламенитель кода, и некоторые из моих представлений требуют jquery.Поскольку они должны использоваться в нескольких местах, они должны вызывать jquery в своем файле, однако, поскольку они ссылаются на внешний файл, вызовы $ (document.ready) оцениваются перед загрузкой jquery и, следовательно, дают сбой.Можно ли поместить jquery в тело и по-прежнему загружать его до оценки javascript.Или, альтернативно, это какой-то способ передать тот факт, что jquery требуется обратно через средство воспламенения кода в заголовки, которые были вызваны перед рассматриваемым файлом.

В представлении:

echo $this->import->js('jquery.js','jquery');
echo '<script type="text/javascript">
$(document).ready(function(){$(\'div#login.rounded\').corner();})
</script>';

Вы можете просмотреть страницу по адресу: http://formulator.codingproject.net/content/login/

ПРИМЕЧАНИЕ Эта страница фактически находится на моем домашнем компьютере, поэтому ожидается, что recaptcha не удастся.

Ответы [ 6 ]

2 голосов
/ 31 августа 2010

jQuery действительно должен вызываться в элементе head. Вот как это можно сделать условно (не проверено).

В вашем контроллере каждая функция, которая нуждается в jQuery, должна иметь:

$data['need_jquery'] = true;
$this->load->view('header');

В вашем заголовке:

<head>
    <? if($need_jquery) { ?>
        <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js" /></script>
    <? } ?>
</head>
2 голосов
/ 31 августа 2010

Полагаю, ответ - да.Вы можете загрузить jQuery.js в ваш body.Но вы должны писать свои теги сценария только после объявления jQuery.js, в противном случае у вас могут возникнуть ошибки:)

PS : пожалуйста, исправьте меня, если я не прав:)

1 голос
/ 31 августа 2010

Похоже, вы используете PHP? Если это так, создайте статический метод, который возвращает эту строку, но только если он еще не был включен в этот запрос. Тогда вы можете убедиться, что он включается только один раз.

0 голосов
/ 01 сентября 2010

Э-э, может я и ошибаюсь. Но когда я просматриваю ваш исходный код и просматриваю, где находится файл jquery: http://www.formulator.com/assets/scripts/jquery/jquery.js, я получаю сообщение об ошибке «страница не найдена» Я предполагаю, что это может быть проблемой. Может быть, ваш PHP не выводит правильный домен / поддомен?

0 голосов
/ 31 августа 2010

Я думаю, что будет хорошо, если jQuery будет включен в тег каждой страницы, кроме того, вы можете использовать уменьшенную версию jQuery, которая не так уж тяжела.

0 голосов
/ 31 августа 2010

Мой сайт такой же. У меня есть один заголовок, который загружается на всех страницах. В этом заголовке я делаю if($this->uri->segment(2) == 'controller'). Затем я загружаю jQuery и некоторые скрипты, если это необходимо для этого контроллера.

...