Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.11.2011, 22:07
Новичок на форуме
Отправить личное сообщение для X-Master Посмотреть профиль Найти все сообщения от X-Master
 
Регистрация: 16.11.2011
Сообщений: 2

Скрипт для сворачивания меню в Джумле
Столкнулся с такой задачей:
В CMS Joomla нужно организовать двухуровневое меню такого типа:

Пункт 1
Пункт 1.1
Пункт 1.2
Пункт 2
Пункт 2.1
Пункт 2.2

Причем, каждое Подменю должно открываться при активации родителя и закрываться при клике на родителе.При этом, родительский пункт меню - это ссылка на материал (во всех аккордион-меню родительский пункт меню - просто разделитель).

Чтобы решить эту задачу я написал такой скрипт:
В хедере
<script>
function collapsElementMenu() {
alert ('achtung');
if ( document.getElementById('current').getElementsByTa gName('ul').style.display != "none" ) {
document.getElementById('current').getElementsByTa gName('ul').style.display = 'none';
}
else {
document.getElementById('current').getElementsByTa gName('ul').style.display = '';
}
}
</script>

Само меню
<div id="left_menu">
<ul class="menu" id="leftMenu">
<li class="parent item5"><a href="ссылка на материал" onclick="collapsElementMenu()">
<span>Пункт 1</span>
</a>
<ul>
<li class="item8">
<a href="ссылка на материал подпункта" onclick="collapsElementMenu()">
<span>Подпункт 1</span>
</a>
</li>
<li class="item9">
<a href="ссылка на материал подпункта" onclick="collapsElementMenu()">
<span>Подпункт 2</span></a>
</li>
</ul>
</ul>

Стиль подменю
#left_menu ul li ul {
display: none;
}

Этот скрипт не работает, и причину этого я не понимаю.
Буду благодарен за любую помощь!
Ответить с цитированием
  #2 (permalink)  
Старый 17.11.2011, 09:36
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от X-Master
Подменю должно открываться при активации родителя
Это как понять? Что есть "активация"?

P.S.
"Пример" твой полный капец... Много тегов просто нехватает...

Последний раз редактировалось ksa, 17.11.2011 в 09:39.
Ответить с цитированием
  #3 (permalink)  
Старый 17.11.2011, 09:47
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Вот вариант открытия/закрытия подменю по клику на ссылке...

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
#leftMenu > li > ul {
	display: none;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
	$('#leftMenu > li > a').click(function(){
		$(this).next('ul').toggle()
	});
});
</script>
</head>
<body>
<div id="left_menu">
	<ul class="menu" id="leftMenu">
		<li class="parent item5">
			<a href="#">
				<span>Пункт 1</span>
			</a>
			<ul>
				<li class="item8">
					<a href="#">
						<span>Подпункт 1</span>
					</a>
				</li>
				<li class="item9">
					<a href="#">
						<span>Подпункт 2</span>
					</a>
				</li>
			</ul>
		</li>
	</ul>
</div>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 17.11.2011, 20:28
Новичок на форуме
Отправить личное сообщение для X-Master Посмотреть профиль Найти все сообщения от X-Master
 
Регистрация: 16.11.2011
Сообщений: 2

ksa, это отличный скрипт, но при работе с ним у меня возникла такая проблема: в примере, который ты привел, ссылки указаны как "#", а на сайте - рабочие ссылки на материалы сайта. И когда я жму на родительский элемент, подменю на полсекунды отображается, а потом - снова пропадает
Я думаю, это связано с тем, что происходит переход по ссылке, страница перезагружается, значение display слетает на исходное. Может быть, здесь нужно использовать cookie, либо можно решить это по другому?
Ответить с цитированием
  #5 (permalink)  
Старый 18.11.2011, 08:33
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от X-Master
Я думаю, это связано с тем, что происходит переход по ссылке, страница перезагружается
Разумеется...
Сообщение от X-Master
значение display слетает на исходное. Может быть, здесь нужно использовать cookie, либо можно решить это по другому?
Есть много способов как ободрать кошку... (с)

Серверные скрипты самое лучшее решение этого вопроса.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу jQuery плагин для создания меню Zeboton jQuery 9 15.09.2014 15:31
Скрипт для увеличения изображения при наведении курсора TypucT Javascript под браузер 1 10.10.2011 15:29
Скрипт меню не работает только в Firefox somatic Firefox/Mozilla 2 28.07.2009 03:23
Скрипт для плагина к Download Master ponand Общие вопросы Javascript 21 05.01.2009 22:12
Нужен скрипт меню управляемого клавишами agnitumus Элементы интерфейса 4 01.10.2008 10:11