2010-08-31 1 views
4

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

+0

Я попытался и не нашел способ. Мне будет интересно узнать, есть ли у кого-то еще. –

+0

Я не знаком с codigniter, но это кажется интересным ... в чем разница между '$ this-> import-> js ('jquery.js', 'jquery')' и просто 'echo'-all '

1

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

+0

Я уже это делаю. Но это не устраняет проблему. – lemiant

2

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

В контроллере, каждая функция, которая нуждается в 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> 
+0

Ничего себе, это гораздо лучшая идея, чем моя. –

0

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

0

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

0

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

+0

О, извините. Как я уже сказал, он находится на моей домашней машине, поэтому мне нужно немного обновить его для доступа к jquery. – lemiant

+0

Хорошо, я исправил это. Но ошибка сохраняется. PS спасибо за отзыв. – lemiant

 Смежные вопросы

  • Нет связанных вопросов^_^