Меню в друпале 6
Здравствуйте. Есть меню на друпале 6. Которое имеет в меню подраздел. Мне нужно сделать так чтобы при клике на раздел вылазил подраздел и открывалась ссылка. Сейчас такое есть, но при двойном нажатии мышки. Подскажите, или сделаете платно мне это. Скайп Art_dsugar.
// $Id: dhtml_menu.js,v 1.18.2.10 2009/01/12 10:13:30 arancaytar Exp $ /** * @file dhtml_menu.js * The Javascript code for DHTML Menu */ Drupal.dhtmlMenu = {}; /** * Initialize the module's JS functions */ Drupal.behaviors.dhtmlMenu = function() { // Do not run this function more than once. if (Drupal.dhtmlMenu.init) { return; } else { Drupal.dhtmlMenu.init = true; } // Get the settings. var effects = Drupal.settings.dhtmlMenu; $('.collapsed').removeClass('expanded'); // Get cookie if (!effects.siblings) { var cookie = Drupal.dhtmlMenu.cookieGet(); for (var i in cookie) { // If the cookie was not applied to the HTML code yet, do so now. var li = $('#dhtml_menu-' + cookie[i]).parents('li:first'); if ($(li).hasClass('collapsed')) { Drupal.dhtmlMenu.toggleMenu(li); } } } /* Add jQuery effects and listeners to all menu items. * The ~ (sibling) selector is unidirectional and selects * only the latter element, so we must use siblings() to get * back to the link element. */ $('ul.menu li.dhtml-menu:not(.leaf,.no-dhtml)').each(function() { var li = this; // Add class to 'branch' links for theming $(li).find('a:first').attr("class","branch"); if (effects.clone && !effects.bullets) { var ul = $(li).find('ul:first'); if (ul.length) { $(li).find('a:first').clone().prependTo(ul).wrap(' <li class="leaf fake-leaf"></li>'); } } if (effects.doubleclick && !effects.bullets) { $(li).find('a:first').dblclick(function(e) { window.location = this.href; }); } /* If item bullets are to be used for the toggle behaviour, * insert a new link tag to be used for menu expansion. */ if(effects.bullets) { var toggleLinkTitle = Drupal.t('Show/Hide Submenu'); var toggleLinkText = Drupal.t('Toggle Menu'); var toggleLink = '<a class="dhtmlMenuControl" href="#" title="'+ toggleLinkTitle +'">'+ toggleLinkText +'</a>'; $(li).find('a:first').before(toggleLink); $(li).find('a.dhtmlMenuControl').click(function(e) { Drupal.dhtmlMenu.toggleMenu($(li)); return false; }); } else { $(li).find('a:first').click(function(e) { Drupal.dhtmlMenu.toggleMenu($(li)); return false; }); } }); } /** * Toggles the menu's state between open and closed. * * @param li * Object. The <li> element that will be expanded or collapsed. */ Drupal.dhtmlMenu.toggleMenu = function(li) { var effects = Drupal.settings.dhtmlMenu; // If the menu is expanded, collapse it. if($(li).hasClass('expanded')) { if (effects.slide) { $(li).find('ul:first').animate({height: 'hide', opacity: 'hide'}, '1000'); } else $(li).find('ul:first').css('display', 'none'); // If children are closed automatically, find and close them now. if (effects.children) { if (effects.slide) { $(li).find('li.expanded').find('ul:first').animate ({height: 'hide', opacity: 'hide'}, '1000'); } else $(li).find('li.expanded').find('ul:first').css('di splay', 'none'); $(li).find('li.expanded').removeClass('expanded'). addClass('collapsed') } $(li).removeClass('expanded').addClass('collapsed' ); } // Otherwise, expand it. else { if (effects.slide) { $(li).find('ul:first').animate({height: 'show', opacity: 'show'}, '1000'); } else $(li).find('ul:first').css('display', 'block'); $(li).removeClass('collapsed').addClass('expanded' ); // If the siblings effect is on, close all sibling menus. if (effects.siblings) { var id = $(li).find('a:first').attr('id'); // Siblings are all open menus that are neither parents nor children of this menu. $(li).find('li').addClass('own-children-temp'); // If the relativity option is on, select only the siblings that have the same parent if (effects.relativity) { var siblings = $(li).parent().find('li.expanded').not('.own-children-temp').not(':has(#' + id + ')'); } // Otherwise, select all menus of the same level else { var siblings = $('ul.menu li.expanded').not('.own-children-temp').not(':has(#' + id + ')'); } // If children should not get closed automatically... if (!effects.children) { // Remove items that are currently hidden from view (do not close these). $('li.collapsed li.expanded').addClass('sibling-children-temp'); // Only close the top-most open sibling, not its children. $(siblings).find('li.expanded').addClass('sibling-children-temp'); siblings = $(siblings).not('.sibling-children-temp'); } $('.own-children-temp, .sibling-children-temp').removeClass('own-children-temp').removeClass('sibling-children-temp'); if (effects.slide) { $(siblings).find('ul:first').animate({height: 'hide', opacity: 'hide'}, '1000'); } else $(siblings).find('ul:first').css('display', 'none'); $(siblings).removeClass('expanded').addClass('coll apsed'); } } // Save the current state of the menus in the cookie. Drupal.dhtmlMenu.cookieSet(); } /** * Reads the dhtml_menu cookie. */ Drupal.dhtmlMenu.cookieGet = function() { var c = /dhtml_menu=(.*?)(;|$)/.exec(document.cookie); if (c) { return c[1]; } else return ''; } /** * Saves the dhtml_menu cooki. */ Drupal.dhtmlMenu.cookieSet = function() { var expanded = new Array(); $('li.expanded').each(function() { expanded.push($(this).find('a:first').attr('id').s ubstr(5)); }); document.cookie = 'dhtml_menu=' + expanded.join(',') + ';path=/'; } |
Часовой пояс GMT +3, время: 00:06. |