Настройка и подключение jQuery

Главные вкладки

Аватар пользователя spamerok spamerok 20 апреля 2009 в 2:17

Добрый день!

Я совсем недавно увлекся работой с замечательным Drupal, и вопрос у меня совсем неоригинальный.

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

Сначала я пользовался модулем content template и вводил код drupal_add_js в тело ноды. Однако, функции не выполнялись (должно было происходить плавное сползание текста).

<?php
drupal_add_js(
'$(document).ready(function(){
$("p").slideDown("slow");
});'
,
'inline'
);
?>

Потом я вставил этот же код в ноду типа Page c фильтром php code. Опять же ничего не происходило. Однако в коде страницы все время присутствовала строчка <script type="text/javascript" src="/misc/jquery.js?L"></script>и ведь ничего не происходило.
Потом я насильно вставил приведенную строчку в шаблон bluemarine и опять ничего не произошло. На странице http://drupal.org/node/302193 все описано так, как я и делал.
Буду очень благодарен за совет. Очень хочется научиться присваивать различные эффекты jQuery объектам

Комментарии

Аватар пользователя penexe penexe 20 апреля 2009 в 2:46

используйте firefox + firebug смотрите в код страницы, если вашего кода нет на странице в том месте где он должен, значит либо кеш либо функция не сработала. ну и тут отпишитесь

Аватар пользователя spamerok spamerok 20 апреля 2009 в 3:38

Вот поставил jQuery_update и в хеде такая запись:
<script type="text/javascript" src="/modules/jquery_update/replace/jquery.packed.js?j"></script>
Видимо она и вызывает jquery. сама страница вот: http://miko.forad.ru/node/7 на ней сейчас текст из примера, вызывается такой функцией:

<?php

drupal_add_js (
    '$(document).ready(function(){$("p.jtest").fadeIn(6000);}); ',
    'inline');
?>

<p class="jtest" style="background-color: palegreen; width: 30em;">

This is an example of an effect which is built into the core jQuery
library. This text should fade in after the DOM is loaded. <a
href="http://api.drupal.org/api/HEAD/function/drupal_add_js">
drupal_add_js()</a> was used to add the <a href="http://jquery.com/api/"> fadeIn</a> effect to any paragraph with the class <b>jtest</b>.

</p>

Честно говоря, я в firebug так и не разглядел, сработал скрипт или нет (ну ничего не изменилось визуально). Спасибо за то что откликнулись!

Аватар пользователя penexe penexe 20 апреля 2009 в 4:12

правильно все сделали, скрипт работает, но визуально вы не увидите
у вас fadeIn - раскрывает элемент, который уже раскрыт и ничего непроисходит
сделайте fadeOut и увидите
удачи!

Аватар пользователя spamerok spamerok 20 апреля 2009 в 11:27

Огромное спасибо! При изменении на fadeOut, блок медленно растаял (и даже пропал вообще)! Любовался на это полчаса. И тут же решил прикрутить аккордеон. Добавил при помощи drupal_add_js следующие скрипты из набора jQuery:

<script type="text/javascript" src="/modules/jquery_ui/jquery.ui/ui/ui.core.js?j"></script>
<script type="text/javascript" src="/modules/jquery_ui/jquery.ui/ui/ui.accordion.js?j"></script>

И страница стала загружаться нереально медленно! При загрузке страницы видно, как нижние три пункта сворачиваются, но при наведении на них мышки (и клике) не разворачиваются. Функцию я взял напрямую из демосов jQuery. Выглядит она так:

<script type="text/javascript">
<!--//--><![CDATA[//><!--
$(function() {
                $("#accordion").accordion();
        });
//--><!]]>
</script>

А сам элемент выглядит так:

<div id="accordion">
        <h3><a href="#">Accordion Header 1</a></h3>
        <div>
                Accordion Content 1
        </div>
        <h3><a href="#">Accordion Header 2</a></h3>
        <div>
                Accordion Content 2
        </div>
        <h3><a href="#">Accordion Header 3</a></h3>
        <div>
                Accordion Content 3
        </div>
</div>  </div>

Все издевательства я по-прежнему провожу на странице http://miko.forad.ru/node/7
Заранее спасибо за любые предложения!

Аватар пользователя spamerok spamerok 20 апреля 2009 в 22:09

Тема все еще актуальна. Буду благодарен, если кто-то откликнется из тех, кто устанавливал jQuery-аккордеон в ноду. Подскажите, какую функцию вызывать для аккордеона! И обязателен ли аккордеоновский css-файл ?

Аватар пользователя kettle kettle 28 сентября 2009 в 15:04

Всем првет.
Подскажите как установить jquery_ui? После установки модуля интеграции он появляется в /admin/build/modules но при попытке его вкл выпадает "The jQuery UI plugin is missing" Все попытки с манипуляциями дистириба не дают результата.(Установлен Drupal6 локально)

Аватар пользователя Artu Artu 5 ноября 2009 в 23:58

Перепробовал все варианты.
Вот это не понятно.
««Extract it as a sub-directory called 'jquery.ui' in the jquery_ui folder:/sites/all/modules/jquery_ui/jquery.ui/»»

В архиве есть папка jquery.ui-1.6.В ней ее содержимое.

Пробовал:
...modules/jquery_ui/jquery.ui/jquery.ui-1.6/c содержимым
...modules/jquery_ui/jquery.ui/содержимое папки jquery.ui-1.6
...modules/jquery_ui/jquery.ui-1.6/c содержимым

Как структура папок должна быть?