Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 710
Благодарности: 12

Профиль | Отправить PM | Цитировать


Iska, с .nextSibling я что-то не поладил: <div><a></a></div><span></span> - нельзя получить тэг <a>. Если я не напортачил, конечно...
mr.Morgan, увы, я не смог заставить это работать, но за идею с ('#spoil'+o) огромное спасибо!
Я придумал несколько другой вариант спойлера в надежде, что всё заработает:
HTML код: Выделить весь код
<a onclick="s(this.id)" class="show" id="open1">Open1</a> <a onclick="s(this.id)" class="hide" id="close1">Close1</a> <span onclick="s(this.id)" class="hide" id="content1">Content1</span> <a onclick="s(this.id)" class="show" id="open2">Open2</a> <a onclick="s(this.id)" class="hide" id="close2">Close2</a> <span onclick="s(this.id)" class="hide" id="content2">Content2</span>

PHP код: Выделить весь код

function s(id){

var 
parseInt(id.replace('open',''), 10);
var 
parseInt(id.replace('close',''), 10);
var 
event.target.id || event.srcElement.id
if (t=="open"+o){
document.getElementById("open"+o).className='hide';
document.getElementById("close"+o).className='show';
document.getElementById("content"+o).className='show';
}else if (
t=="close"+c){
document.getElementById("open"+c).className='show';
document.getElementById("close"+c).className='hide';
document.getElementById("content"+c).className='hide';
}else{return}} 

Всё работает отлично, но у меня не получается закрыть все спойлеры.
Я нашёл такую штуку:
PHP код: Выделить весь код

function returnAttributes(at){

var 
arr=[];
var 
elem=document.getElementsByTagName('*'), i=0e;
while(
e=elem[i++]){
e[at]?arr[arr.length]=e[at]:null;
}
return 
arr;
}
onload=function(){
var 
allIds=returnAttributes('id');
alert(allIds);


Этот скрипт создаёт список всех id на странице. Всё, что нужно - это из allIds выбрать все, что подходят по образцу к openN и closeN и для всех тегов с подходящими id задать .className='show' и .className='hide', соответственно. У меня вот с выбором по образцу пока проблема...

Отправлено: 00:28, 02-08-2012 | #22