Javascript.RU

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

Помогите со скриптом сворачивания текста
Привет. Никак не могу разобраться, почему не так работает скрипт.
Скрипт сворачивает и разворачивает текст. Проблема в том, что в родительских divах все работает, а во вложенных -нет. Хочу, чтобы разворачивалось и сворачивалось везде.
Как это реализовать с помощью данного скрипта?
Для удобства залил пример на хостинг
вот код
//here you place the ids of every element you want.
var ids=new Array('yandex','y_site','y_program','w_site','webmoney','bank');

function switchid(id){	
	hideallids();
	showdiv(id);
}

function hideallids(){
	//loop through the array and hide each element by id
	for (var i=0;i<ids.length;i++){
		hidediv(ids[i]);
	}		  
}

function hidediv(id) {
	//safe function to hide an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'none';
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.display = 'none';
		}
		else { // IE 4
			document.all.id.style.display = 'none';
		}
	}
}

function showdiv(id) {
	//safe function to show an element with a specified id
		  
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'block';
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.display = 'block';
		}
		else { // IE 4
			document.all.id.style.display = 'block';
		}
	}
}

и хтмл
<p>Выбирай: <a href="javascript:switchid('yandex');">Яндекс</a>
<a href="javascript:switchid('webmoney');">Вебмани</a>
<a href="javascript:switchid('bank');">Банк</a>
</p>

	<div id='yandex' style="display:none;">
		<a href="javascript:switchid('y_site');">Через сайт</a><br/>
			<div id='y_site' style="display:none;">
				<p>1</p>
	</div>
		<a href="javascript:switchid('y_program');">Через программу</a>
			<div id='y_program' style="display:none;">
				<p>2</p>
	</div>
	</div>

	<div id='webmoney' style="display:none;">
		<a href="javascript:switchid('w_site');">Через сайт</a><br/>
			<div id='w_site' style="display:none;">
				<p>3</p>
			</div>
	</div>

	<div id='bank' style="display:none;">
		<p>Yet more content. This can be anything in here, html, pictures.. flash ...</p>
	</div>

вот еще картинка
Ответить с цитированием
  #2 (permalink)  
Старый 28.03.2009, 16:38
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

а с чего бы быть видимиым диву, если его родитель невидим?
вынесите вложенные дивы из родительских, и тогда они не будут скрыватся
<div id='yandex' style="display:none;">
		<a href="javascript:switchid('y_site');">Через сайт</a><br/>

		<a href="javascript:switchid('y_program');">Через программу</a>

	</div>
			<div id='y_site' style="display:none;">
				<p>1</p>
	</div>
			<div id='y_program' style="display:none;">
				<p>2</p>
	</div>

PS закопайте пожалуйста скрипт там же где откопали. смотреть противно. это живой труп, буквально.
либо перепишите его нормально. Вставки с коментариями "// Netscape 4" просто принципиально не имеют права на жизнь

Последний раз редактировалось Gvozd, 28.03.2009 в 16:41.
Ответить с цитированием
  #3 (permalink)  
Старый 28.03.2009, 17:00
Аспирант
Отправить личное сообщение для Shokoladniu Посмотреть профиль Найти все сообщения от Shokoladniu
 
Регистрация: 28.03.2009
Сообщений: 32

Спасибо огромное! Я в "современности" скриптов не разбираюсь, поскольку не знаю ява скрипт. Был бы благодарен за ссылку или совет, как его модернизировать
Ответить с цитированием
  #4 (permalink)  
Старый 28.03.2009, 17:05
Аспирант
Отправить личное сообщение для Shokoladniu Посмотреть профиль Найти все сообщения от Shokoladniu
 
Регистрация: 28.03.2009
Сообщений: 32

есть еще такой вариант
function switchMenu(obj) {
var el = document.getElementById(obj);
if ( el.style.display != 'none' ) {
el.style.display = 'none';
}
else {
el.style.display = '';
}
}
function $() {
var elements = new Array();
for (var i = 0; i < arguments.length; i++) {
var element = arguments[i];
if (typeof element == 'string')
element = document.getElementById(element);
if (arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}
function collapseAll(objs) {
var i;
for (i=0;i<objs.length;i++ ) {
objs[i].style.display = 'none';
}
}
function pageLoad() {
collapseAll($('yandex','y_site','y_program', 'webmoney'));
}
addEvent(window,'load',pageLoad);

но он не совсем корректно работает - не сворачивает слои при загрузке - так и не смог его настроить
Залил пример
Нужно чтобы все было изначально свернуто

Последний раз редактировалось Shokoladniu, 28.03.2009 в 17:11.
Ответить с цитированием
  #5 (permalink)  
Старый 28.03.2009, 17:33
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Shokoladniu
не знаю ява скрипт
это форум для тех кто его знает, либо собирается знать и только начинает учить.
в разделе книги есть отличные книги для изучения JS
когда вы изучите JS до такой степени. чтобы понять что происходит вашем сркипте, вы сможете его модернизировать.для этого много знать не надо.
краткий алгоритм(один из вариантов):
при разворачивани блока, надо проврить, есть ли у него предки, из тех, что указаны в списке ID-шников.
если есть, то не сворачивать их

если же вы не собираетесь учить его, то можете обратится со своими вопросами в раздел работа, где при условии наличия времени и желания вам помогут за деньги.
Ответить с цитированием
  #6 (permalink)  
Старый 28.03.2009, 17:47
Аспирант
Отправить личное сообщение для Shokoladniu Посмотреть профиль Найти все сообщения от Shokoladniu
 
Регистрация: 28.03.2009
Сообщений: 32

Спасибо
Ответить с цитированием
  #7 (permalink)  
Старый 28.03.2009, 18:12
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

пожалуйста.
надеюсь, вы пойдете по более трудному и более полезному для вас пути изучения JS
Ответить с цитированием
  #8 (permalink)  
Старый 29.03.2009, 01:05
Аспирант
Отправить личное сообщение для Shokoladniu Посмотреть профиль Найти все сообщения от Shokoladniu
 
Регистрация: 28.03.2009
Сообщений: 32

А не подскажете как можно отследить нажатие на одну из этих ссылок
<p><a href="javascript:switchid('yandex');">Яндекс</a>
<a href="javascript:switchid('webmoney');">Вебмани</a>
<a href="javascript:switchid('bank');">Банк</a>
</p>

чтобы к примеру если я нажимаю на Яндекс, то Вебмани и Банк меняли цвет (или шрифт или начертание, не важно что, любое CSS свойство)

Последний раз редактировалось Shokoladniu, 29.03.2009 в 23:03.
Ответить с цитированием
  #9 (permalink)  
Старый 29.03.2009, 01:06
Аспирант
Отправить личное сообщение для Shokoladniu Посмотреть профиль Найти все сообщения от Shokoladniu
 
Регистрация: 28.03.2009
Сообщений: 32

мне думается, что надо отслеживать клик и присваивать двум другим новые css стили. Но как это технически реализовать? Использовать тот же getElementById или elem.setAttribute? Или использовать вот этот ваш скрипт?

Последний раз редактировалось Shokoladniu, 29.03.2009 в 01:16.
Ответить с цитированием
  #10 (permalink)  
Старый 30.03.2009, 00:01
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

я бы скорее показывал скрытое содержимое с отступом
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите со скриптом rumrum Общие вопросы Javascript 7 24.03.2009 18:11
Помогите со скриптом. Harper Общие вопросы Javascript 13 22.03.2009 21:22
Помогите разобраться со скриптом! Чайник Элементы интерфейса 1 13.03.2009 23:57
Firefox: перехватить соббытие при перетаскивании текста no_alex Общие вопросы Javascript 9 21.08.2008 18:02
вывод нужного текста в текстовом поле при нажатии на кнопку! fifo4ka Общие вопросы Javascript 7 06.05.2008 13:36