Вертикальное меню c JQuery

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

Аватар пользователя Jacka Jacka 1 мая 2011 в 17:28

Добрый вечер, уважаемые пользователи Drupal.ru! Хочу задать вопрос касательно встраивания JQuery на свой сайт, а точнее попросить помощи с исправлением ошибок.

Прочитал данный пост и решил использовать JQuery для создания своего меню. Автор дал ссылку на страницу с примерами (я использую пример №4).

Я создал блок и вставил код (в режиме PHP):

<?php
  drupal_add_js
('sites/all/themes/photofolio/jquery-1.4.2.min.js''file');
  
drupal_add_js('sites/all/themes/photofolio/menu.js''file');
?><div class="vertical-menu"><ul class="menu collapsible">
        <li class="expand">
            <a href="#" class="">Weblog Tools</a>
            <ul class="acitem" style="display: none;">
                <li><a href="http://www.pivotx.net/">PivotX</a></li>
                <li><a href="http://www.wordpress.org/">WordPress</a></li>
                <li><a href="http://www.textpattern.com/">Textpattern</a></li>
                <li><a href="http://typosphere.org/">Typo</a></li>
            </ul>
        </li>
        <li>
            <a href="#" class="active">Programming Languages</a>
            <ul class="acitem" style="display: block;">
                <li><a href="http://www.php.net/">PHP</a></li>
                <li><a href="http://www.ruby-lang.org/en/">Ruby</a></li>
                <li><a href="http://www.python.org/">Python</a></li>
                <li><a href="http://www.perl.org/">PERL</a></li>
                <li><a href="http://java.sun.com/">Java</a></li>
                <li><a href="http://en.wikipedia.org/wiki/C_Sharp">C#</a></li>
            </ul>
        </li>
        <li><a href="http://www.i-marco.nl/weblog/">Marco's blog (no submenu)</a></li>
        <li>
            <a href="#">Cool Stuff</a>
            <ul class="acitem" style="display: none;">
                <li><a href="http://bookalicio.us/">Bookalicious</a></li>
                <li><a href="http://www.apple.com/">Apple</a></li>
                <li><a href="http://www.nikon.com/">Nikon</a></li>
                <li><a href="http://www.xbox.com/en-US/">XBOX360</a></li>
                <li><a href="http://www.nintendo.com/">Nintendo</a></li>
            </ul>
        </li>
        <li>
            <a href="#">Search Engines</a>
            <ul class="acitem" style="display: none;">
                <li><a href="http://search.yahoo.com/">Yahoo!</a></li>
                <li><a href="http://www.google.com/">Google</a></li>
                <li><a href="http://www.ask.com/">Ask.com</a></li>
                <li><a href="http://www.live.com/?searchonly=true">Live Search</a></li>
            </ul>
        </li>
    </ul></div>?>

Добавил все записи в CSS:

/*the beginng of vertical menu*/
.vertical-menu ul.menu, .vertical-menu ul.menu ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    width: 100%;
}
.vertical-menu ul.menu li {
    margin-top: 1px;
}
.vertical-menu ul.menu li a, .vertical-menu ul.menu ul.menu li a {
    background: none repeat scroll 0 0 #333333;
    color: #FFFFFF;
    padding: 0.5em;
}
.vertical-menu ul.menu a {
    display: block;
    text-decoration: none;
}
.vertical-menu ul.menu li {
    margin-top: 1px;
}
.vertical-menu ul.menu li ul li a, .vertical-menu ul.menu ul.menu li ul li a {
    background: none repeat scroll 0 0 #CCCCCC;
    color: #000000;
    padding-left: 20px;
}
.vertical-menu ul.menu li a{
    width: auto !important;
}
vertical-menu ul.menu, vertical-menu ul.menu ul {
  list-style-type:none;
  margin: 0;
  padding: 0;
}

vertical-menu ul.menu a {
  display: block;
  text-decoration: none;       
}

vertical-menu ul.menu li {
  margin-top: 1px;
}

vertical-menu ul.menu li a, vertical-menu ul.menu ul.menu li a {
  background: #333;
  color: #fff; 
  padding: 0.5em;
}

vertical-menu ul.menu li a:hover, vertical-menu ul.menu ul.menu li a:hover {
  background: #000;
}

vertical-menu ul.menu li ul li a, vertical-menu ul.menu ul.menu li ul li a {
  background: #ccc;
  color: #000;
  padding-left: 20px;
}

vertical-menu ul.menu li ul li a:hover, vertical-menu ul.menu ul.menu li ul li a:hover {
  background: #aaa;
  border-left: 5px #000 solid;
  padding-left: 15px;
}
vertical-menu ul.menu ul.menu li a:hover {
    border-left: 0;
    padding-left: 0.5em;
}
vertical-menu ul.menu ul.menu {
    border-left: 5px #f00 solid;
}
vertical-menu ul.menu a.active, vertical-menu ul.menu ul.menu li a.active, vertical-menu ul.menu a.active:hover, vertical-menu ul.menu ul.menu li a.active:hover {
    text-decoration: underline;
    background: #c00;
}
vertical-menu div.panel {
    border: 1px #000 solid;
    padding: 5px;
    margin-top: 1px;
}

vertical-menu ul.menu div.panel a, vertical-menu ul.menu div.panel li a:hover  {
    display :inline;
    color: #666;
    background: none;
    margin: 0;
    padding: 0;
    border: none;
    font-weight: bold;
}
vertical-menu ul.menu div.panel a:hover {
    color: #000;
    text-decoration: underline;
}

.code { border: 1px solid #ccc; list-style-type: decimal-leading-zero; padding: 5px; margin: 0; }
.code code { display: block; padding: 3px; margin-bottom: 0; }
.code li { background: #ddd; border: 1px solid #ccc; margin: 0 0 2px 2.2em; }
.indent1 { padding-left: 1em; }
.indent2 { padding-left: 2em; }
.indent3 { padding-left: 3em; }
.indent4 { padding-left: 4em; }
.indent5 { padding-left: 5em; }
.indent6 { padding-left: 6em; }
.indent7 { padding-left: 7em; }
.indent8 { padding-left: 8em; }
.indent9 { padding-left: 9em; }
.indent10 { padding-left: 10em; }

/*the end of vertical menu*/

Ничего не выходит. Уже чистил кэш. Firebug указывает следующую ошибку:
http://www.imagepost.ru/images/z/yd/zydpczzjdpwrisgilvfwhsemcyajln.PNG

Адрес сайта: _http://tourcap.ru

С PHP и JQuery ещё не работал, объясните, пожалуйста, попонятнее.

Комментарии

Аватар пользователя Jacka Jacka 2 мая 2011 в 16:49

Спасибо, что отозвались!
Да, но мне нужен именно этот скрипт. Он работает именно так, как нужно мне. К тому же предложенный модуль не совместим с Drupal 7...

Прикрепил JQuery к самому стилю. Ошибка в Firebug исчезла. Но скрипт по-прежнему не хочет работать.

Аватар пользователя Erly Erly 2 мая 2011 в 18:52

В таком случае вам надо действовать так:
1. создать в друпале меню
2. Меню выводить блоком в нужном регионе
3. Для этого меню и этого блока сделать шаблон вывода, в котором происать нужную структуру тегов
4. К этому хозяйству подвязать css- и js-файлы.

И потом, зачем вы ципляете jquery-1.4.2.min.js ? Когда в друпале уже и так есть jQuery, который автоматом ципляется при каждо вызове drupal_add_js. Т.о. достаточно выполнить:


<?php
    drupal_add_js
('sites/all/themes/photofolio/menu.js''file');
?>

и будет подцеплен не только menu.js, но и jQuery. Из-за этого, кстати, может и не работает, т.к. один файл jQuery перекрывает другой.

Аватар пользователя Jacka Jacka 3 мая 2011 в 18:14

Первый и второй пункты понятны, но вот третий и четвёртый...

"Erly" wrote:
сделать шаблон вывода, в котором прописать нужную структуру тегов
А каким образом? Ммм...может об этом где-то написано...

Я думал, что если при создании нового собственного блока поставить режим PHP-code и вставить туда HTML + PHP, который будет вызывать нужный мне скрипт. то есть так:

<?php
    drupal_add_js
('sites/all/themes/photofolio/menu.js''file');
?><div class="vertical-menu"><ul class="menu collapsible">
        <li class="expand">
            <a href="#" class="">Weblog Tools</a>
            <ul class="acitem" style="display: none;">
                <li><a href="#">PivotX</a></li>
                <li><a href="#">WordPress</a></li>
                <li><a href="#">Textpattern</a></li>
                <li><a href="#">Typo</a></li>
            </ul>
        </li>
        <li>
            <a href="#" class="active">Programming Languages</a>
            <ul class="acitem" style="display: block;">
                <li><a href="#">PHP</a></li>
                <li><a href="#">Ruby</a></li>
                <li><a href="#">Python</a></li>
                <li><a href="#">PERL</a></li>
                <li><a href="#">Java</a></li>
                <li><a href="#">C#</a></li>
            </ul>
        </li>
        <li><a href="http://www.i-marco.nl/weblog/">Marco's blog (no submenu)</a></li>
        <li>
            <a href="#">Cool Stuff</a>
            <ul class="acitem" style="display: none;">
                <li><a href="#">Bookalicious</a></li>
                <li><a href="#">Apple</a></li>
                <li><a href="#">Nikon</a></li>
                <li><a href="#">XBOX360</a></li>
                <li><a href="#">Nintendo</a></li>
            </ul>
        </li>
        <li>
            <a href="#">Search Engines</a>
            <ul class="acitem" style="display: none;">
                <li><a href="#">Yahoo!</a></li>
                <li><a href="#">Google</a></li>
                <li><a href="#">Ask.com</a></li>
                <li><a href="#">Live Search</a></li>
            </ul>
        </li>
    </ul></div>?>

Далее я прописываю нужный мне стиль в CSS-файлах и всё тип-топ.

Скрипт уже виден через Firebug в , но толку? Я не понимаю сам алгоритм вызыва какой-либо функции для дальнейшего её выполнения...

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

Аватар пользователя andribas@drupal.org andribas@drupal.org 3 мая 2011 в 20:29

не знал, что есть такой модуль. написал за час своих 2 модуля для гор. и верт. меню, которые прикручены к меню друпала и темизируются css. ссылку на пример могу в личку скинуть, правда для 6-ки

Аватар пользователя andribas@drupal.org andribas@drupal.org 3 мая 2011 в 21:52

ну там только menu_tree_output переделан, несложно думаю и для 7-ки приспособить
а если вам меню не надо управлять, а просто руками вставить, то можете оттуда взЯть - http://www.designchemical.com/lab/demo-wordpress-vertical-accordion-menu... он для вордпресса правда Smile я просто иконки еще хочу прилепить, почти доделал, ну и настроек там побольше? вроде