Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.03.2014, 09:04
Новичок на форуме
Отправить личное сообщение для dsugar Посмотреть профиль Найти все сообщения от dsugar
 
Регистрация: 03.03.2014
Сообщений: 1

Меню в друпале 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=/';
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение активных пунктов многоуровневого меню на jQuery Letto Элементы интерфейса 2 04.12.2013 15:30
Открыть слайд (раздел) текущего пункта меню Demath Элементы интерфейса 8 18.07.2012 02:49
скрипт работает только на последнем пункте меню walking Элементы интерфейса 0 08.01.2012 14:56
Выпадающие меню like2dev Общие вопросы Javascript 9 21.10.2011 14:09
Проблема с аккордионом и меню Tie ExtJS 3 01.09.2011 14:36