Javascript.RU

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

Помогите исправить выпадающее меню
Есть код JS
<script type="text/javascript">// <![CDATA[
function showTooltip4()
{
var myDiv4 = document.getElementById('tooltip4');
var p=document.getElementById('sp');
if(myDiv4.style.display == 'none')
{
myDiv4.style.display = 'block';p.innerHTML='<img src="http://cdn.endata.cx/images/personal/1276213/ndblRArrowYellow.gif" alt="" />';
} else {
myDiv4.style.display = 'none';p.innerHTML='<img src="http://cdn.endata.cx/images/personal/1276213/dblRArrowYellow.gif" alt="" />';
}
return false;
}
function showTooltip5()
{
var myDiv4 = document.getElementById('tooltip5');
var p=document.getElementById('sp2');
if(myDiv4.style.display == 'none')
{
myDiv4.style.display = 'block';p.innerHTML='<img src="http://cdn.endata.cx/images/personal/1276213/ndblRArrowYellow.gif" alt="" />';
} else {
myDiv4.style.display = 'none';p.innerHTML='<img src="http://cdn.endata.cx/images/personal/1276213/dblRArrowYellow.gif" alt="" />';
}
return false;
}
// ]]></script>


html

<div style="margin: 10px 5px 0px; padding: 10px; text-align: width:100%; color: #ff0;" class="enPnl1 border_rad5 pnGr">
<center><strong>Информационный блок</strong></center>
<div class="hr" style="margin-top: 8px; margin-bottom: 4px; background-image: none; background-color: #0d3b00;"></div>
<a class="lm" href="/...">Правила</a>
<div class="hr" style="margin-top: 8px; margin-bottom: 4px; background-image: none; background-color: #0d3b00;"></div>
<div2><a style="text-decoration: none;" onclick="showTooltip4()" href="javascript:;">Для авторов&nbsp;<span id="sp">
<img src="http://cdn.endata.cx/images/personal/1276213/dblRArrowYellow.gif" alt="" /></span></a></div2>
<div id="tooltip4" style="display: none;"><a class="lm" href="/Addons.aspx?aid=3830">-&nbsp;Авторам игр</a><br />
<a class="lm" href="/Addons.aspx?aid=12149">-&nbsp;Об авторских ошибках</a></div>
<div class="hr" style="margin-top: 8px; margin-bottom: 4px; background-image: none; background-color: #0d3b00;"></div>
<div2><a style="text-decoration: none;" onclick="showTooltip5()" href="javascript:;">Для авторов-2&nbsp;<span id="sp2">
<img src="http://cdn.endata.cx/images/personal/1276213/dblRArrowYellow.gif" alt="" /></span></a></div2>
<div id="tooltip5" style="display: none;"><a class="lm" href="/Addons.aspx?aid=3830">-&nbsp;Авторам игр-2</a><br />
<a class="lm" href="/Addons.aspx?aid=12149">-&nbsp;Об авторских ошибках-2</a></div>

<div class="hr" style="margin-top: 8px; margin-bottom: 4px; background-image: none; background-color: #0d3b00;"></div>
</div>


можно ли сделать код намного проще? т.к. при создании новых пунктов в которых будет подменю я копирую код JS. или это на быстродействие сайта не будет влиять?
и еще вопрос. как сделать, чтобы при раскрытии меню и переходе по какому либо подпункту, это меню не закрывалось, а оставалось в открытом состоянии (чтобы постоянно не открывать его если пользователь хочет изучить подразделы)?
Ответить с цитированием
  #2 (permalink)  
Старый 09.07.2012, 16:42
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от Dracula_666 Посмотреть сообщение
можно ли сделать код намного проще? т.к. при создании новых пунктов в которых будет подменю я копирую код JS. или это на быстродействие сайта не будет влиять?
и еще вопрос. как сделать, чтобы при раскрытии меню и переходе по какому либо подпункту, это меню не закрывалось, а оставалось в открытом состоянии (чтобы постоянно не открывать его если пользователь хочет изучить подразделы)?
function showTooltip(div, p) {
	var myDiv = document.getElementById(div);
	var p=document.getElementById(p);
	if (myDiv.style.display == 'none') {
		myDiv.style.display = 'block';
		p.innerHTML='<img src="http://cdn.endata.cx/images/personal/1276213/ndblRArrowYellow.gif" alt="" />';
	} else {
		myDiv.style.display = 'none';
		p.innerHTML='<img src="http://cdn.endata.cx/images/personal/1276213/dblRArrowYellow.gif" alt="" />';
	}
	return false;
}


а для того, чтобы было открыто нужно передать переменную в ссылке на следующую страницу (например, http://site.ru/page2.html?div2=open) и при загрузки страницы проверять адресную строку на соответствующие параметры
или воспользоваться cookie's и записывать туда необходимые данные...

Последний раз редактировалось lord2kim, 09.07.2012 в 16:45.
Ответить с цитированием
  #3 (permalink)  
Старый 10.07.2012, 01:08
Интересующийся
Отправить личное сообщение для Dracula_666 Посмотреть профиль Найти все сообщения от Dracula_666
 
Регистрация: 09.07.2012
Сообщений: 10

Что то скрипт не работает.. не раскрывает меню. Нужно в html что-то менять?
Ответить с цитированием
  #4 (permalink)  
Старый 10.07.2012, 11:03
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от Dracula_666 Посмотреть сообщение
Что то скрипт не работает.. не раскрывает меню. Нужно в html что-то менять?
покажите что у вас получилось...тот же код JS и тот HTML выложите, только с вашими изменениями
Ответить с цитированием
  #5 (permalink)  
Старый 10.07.2012, 14:10
Интересующийся
Отправить личное сообщение для Dracula_666 Посмотреть профиль Найти все сообщения от Dracula_666
 
Регистрация: 09.07.2012
Сообщений: 10

Сообщение от lord2kim Посмотреть сообщение
покажите что у вас получилось...тот же код JS и тот HTML выложите, только с вашими изменениями
<script type="text/javascript">
function showTooltip(div, p) {
var myDiv = document.getElementById(div);
var p=document.getElementById(p);
if (myDiv.style.display == 'none') {
      myDiv.style.display = 'block';
      p.innerHTML='<img src="http://cdn.endata.cx/images/personal/1276213/ndblRArrowYellow.gif" alt="" />';
	    } else {
	        myDiv.style.display = 'none';
	        p.innerHTML='<img src="http://cdn.endata.cx/images/personal/1276213/dblRArrowYellow.gif" alt="" />';
    }
	    return false;
	}
</script>


<div style="margin: 10px 5px 0px; padding: 10px; text-align: width:100%; color: #ff0;" class="enPnl1 border_rad5 pnGr">
<center><strong>Информационный блок</strong></center>
<div class="hr" style="margin-top: 8px; margin-bottom: 4px; background-image: none; background-color: #0d3b00;"></div>
<a class="lm" href="/...">Правила</a>
<div class="hr" style="margin-top: 8px; margin-bottom: 4px; background-image: none; background-color: #0d3b00;"></div>
<div2><a style="text-decoration: none;" onclick="showTooltip4()" href="javascript:;">Для авторов&nbsp;<span id="sp">
<img src="http://cdn.endata.cx/images/personal/1276213/dblRArrowYellow.gif" alt="" /></span></a></div2>
<div id="tooltip4" style="display: none;"><a class="lm" href="/Addons.aspx?aid=3830">-&nbsp;Авторам игр</a><br />
<a class="lm" href="/Addons.aspx?aid=12149">-&nbsp;Об авторских ошибках</a></div>
<div class="hr" style="margin-top: 8px; margin-bottom: 4px; background-image: none; background-color: #0d3b00;"></div>
<div2><a style="text-decoration: none;" onclick="showTooltip5()" href="javascript:;">Для авторов-2&nbsp;<span id="sp2">
<img src="http://cdn.endata.cx/images/personal/1276213/dblRArrowYellow.gif" alt="" /></span></a></div2>
<div id="tooltip5" style="display: none;"><a class="lm" href="/Addons.aspx?aid=3830">-&nbsp;Авторам игр-2</a><br />
<a class="lm" href="/Addons.aspx?aid=12149">-&nbsp;Об авторских ошибках-2</a></div>
<div class="hr" style="margin-top: 8px; margin-bottom: 4px; background-image: none; background-color: #0d3b00;"></div>
</div>
Ответить с цитированием
  #6 (permalink)  
Старый 10.07.2012, 16:01
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

а кто за вас будет передавать параметры в функцию? которую вы даже не прописали, и оставили старые функции (showTooltip4(), showTooltip5())
<div style="margin: 10px 5px 0px; padding: 10px; text-align: width:100%; color: #ff0;" class="enPnl1 border_rad5 pnGr">
	<center><strong>Информационный блок</strong></center>
		<div class="hr" style="margin-top: 8px; margin-bottom: 4px; background-image: none; background-color: #0d3b00;"></div>
		<a class="lm" href="/...">Правила</a>
			<div class="hr" style="margin-top: 8px; margin-bottom: 4px; background-image: none; background-color: #0d3b00;"></div>
			<div2><a style="text-decoration: none;" onclick="showTooltip('tooltip4', 'sp')" href="javascript:;">Для авторов&nbsp;<span id="sp">
			<img src="http://cdn.endata.cx/images/personal/1276213/dblRArrowYellow.gif" alt="" /></span></a></div2>
			<div id="tooltip4" style="display: none;"><a class="lm" href="/Addons.aspx?aid=3830">-&nbsp;Авторам игр</a><br />
			<a class="lm" href="/Addons.aspx?aid=12149">-&nbsp;Об авторских ошибках</a></div>
				<div class="hr" style="margin-top: 8px; margin-bottom: 4px; background-image: none; background-color: #0d3b00;"></div>
				<div2><a style="text-decoration: none;" onclick="showTooltip('tooltip5', 'sp2')" href="javascript:;">Для авторов-2&nbsp;<span id="sp2">
				<img src="http://cdn.endata.cx/images/personal/1276213/dblRArrowYellow.gif" alt="" /></span></a></div2>
				<div id="tooltip5" style="display: none;"><a class="lm" href="/Addons.aspx?aid=3830">-&nbsp;Авторам игр-2</a><br />
				<a class="lm" href="/Addons.aspx?aid=12149">-&nbsp;Об авторских ошибках-2</a></div>
				<div class="hr" style="margin-top: 8px; margin-bottom: 4px; background-image: none; background-color: #0d3b00;"></div>
</div>

и что это за div2? такого тега не существует...
Ответить с цитированием
  #7 (permalink)  
Старый 10.07.2012, 17:19
Интересующийся
Отправить личное сообщение для Dracula_666 Посмотреть профиль Найти все сообщения от Dracula_666
 
Регистрация: 09.07.2012
Сообщений: 10

lord2kim спасибо большое! все заработало, но я новичек можно сказать и ни как не могу сделать вот этот пункт

Цитата:
а для того, чтобы было открыто нужно передать переменную в ссылке на следующую страницу (например, http://site.ru/page2.html?div2=open) и при загрузки страницы проверять адресную строку на соответствующие параметры
или воспользоваться cookie's и записывать туда необходимые данные...
был бы очень благодарен, если бы вы мне помогли с этим. сайт 34.en.cx.
Спасибо большое!
Ответить с цитированием
  #8 (permalink)  
Старый 10.07.2012, 20:57
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от Dracula_666 Посмотреть сообщение
lord2kim спасибо большое! все заработало, но я новичек можно сказать и ни как не могу сделать вот этот пункт
был бы очень благодарен, если бы вы мне помогли с этим. сайт 34.en.cx.
Спасибо большое!
ну, например, пункт Для авторов -> Автором игр
у вас ссылка вида http://34.en.cx/Addons.aspx?aid=3830...не знаю как она у вас в php обрабатывается, но вы можете сделать, например, так...
http://34.en.cx/Addons.aspx?aid=3830&div=tooltip1&p=sp
где div-у приравнивается значение идентификатора id соответствующего div-a, а p - идентификатор id соответствующего span-а
в javascript на соответствующей странице пишите что-то типа такого (при этом нужно, чтобы php, наверное, не обрабатывал лишние "переменные" в GET-запросе)
window.onLoad = function() {
	var lb = String(window.location.search), div, p;
	lb = lb.split("&").split("=");
	for (i=0; i < lb.length; i++2) {
		if (lb[i] == "div") {
			div = lb[i+1];
		}
		else if (lb[i] == "p") {
			p = lb[i+1];
		}
	}
	if (typeof div && typeof p) {
		showTooltip(div, p);
	}
}

здесь с помощью window.location.search получаем часть строки браузера после знака ?, преобразуем в строку, разбиваем строку на массив по символу &, потом по символу = и проверяем каждый четный элемент полученного массива на соответствующее значение, а каждое нечетное значение массива присваиваем соответствующей переменной при совпадении четного элемента массива с необходимыми данными
после прохождения по всему массиву проверяем существуют ли обе переменные (не равны "undefined"), то в этом случае вызываем функцию с соответствующими аргументами...

Последний раз редактировалось lord2kim, 10.07.2012 в 21:02.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Находится ли мышка над дивом ? (выпадающее меню) advsm jQuery 31 24.09.2014 17:50
Выпадающее меню на JS (подкатегории) Trueplayer Events/DOM/Window 5 18.09.2014 22:29
Выпадающее меню не работает в Chrome Bangoo jQuery 1 21.03.2011 20:33
Помогите с выпадающим меню ... 03SPS12 (X)HTML/CSS 5 22.12.2010 09:50
помогите с меню Ribt Общие вопросы Javascript 0 20.09.2008 08:11