Show/Hide Next Object

Функция на JS, которая прячет/показывает следующий за объектом вызывающим её, объект (группу объектов), но не голый текст. 

1. Валидный (DOM) код 1, со сменой текста ссылки:

Sample hide
Вставлять между тегами <HEAD> и </HEAD> документа или создать файл script.js и включить строку: <script src="script.js" type="text/javascript"></script> Код JavaScript. /* Проверочка на лишние текст и переносы каретки */ function nextNode(e) { return ((e && e.nodeType != 1) ? nextNode(e = e.nextSibling) : e); } function NextObj(nObj,nText){ tObj=nextNode(nObj.nextSibling); with(nObj) if (innerHTML==nText+' show') {innerHTML=nText+' hide'; tObj.style.display='block';} else {innerHTML=nText+' show'; tObj.style.display='none';} } Ссылка-переключатель, вставлять непосредственно перед объектом <A href="#" onclick="NextObj(this, 'Sample'); return false;">Sample hide</A>

2. Валидный (DOM) код 2, без смены текста ссылки:

Sample show/hide
Код JavaScript. /* Проверочка на лишние текст и переносы каретки */ function nextNode(e) { return ((e && e.nodeType != 1) ? nextNode(e = e.nextSibling) : e); } function NextObj2(nObj){ tObj=nextNode(nObj.nextSibling); with(tObj.style) display = (display != 'none') ? 'none':'block'; } Ссылка-переключатель, вставлять непосредственно перед объектом <A href="#" onclick="NextObj2(this); return false;">Sample hide</A>

3. Старый, не DOM код:

Sample hide
Код JavaScript. function NextObjX(nObj,nText){ tObj=document.all[nObj.sourceIndex+1].style; with(nObj) if (innerText==nText+' show') {innerText=nText+' hide'; tObj.display='block';} else {innerText=nText+' show'; tObj.display='none';} } Работает даже изнутри конструкции (т.е. ссылка переключатель вложена в другой объект) <H3>Header open <A href="#" onclick="NextObj2(this); return false;">Sample hide</A> Header close</H3>
  • Работет с блочными объектами (display:'block'/'none').
  • Не использует ID элемента.
  • Без проверки на браузер.
  • Для скрытия нескольких объектов, просто поместите их в блок (например <DIV></DIV>).
  • Не требует установки классов в CSS.
  • п1 и п3: Слово 'Sample' можно заменить на любое.
  • п1 и п3: Слова ' show' и ' hide' (с пробелом в начале) управляют видимостью.
  • п2: Скрываемый элемент изначально должен быть либо видимый, либо спрятан средствами скрипта
  • п3: Работает в IE 6/7, Opera 8/9. В Firefox - нет.

Проверочка на лишние текст и переносы каретки сделана благодаря forum.htmlbook.ru

Обсуждение и "версии" в сообществе ru_webdev.livejournal.com

особая благодарность LJ-user dasbot и LJ-user harisov

SMS.копилка Rambler's Top100 Рейтинг@Mail.ru
Добавить в онлайн закладки