|
|
|
| Всем привет, столкнулся с проблемой.
На странице много div'ов, но начинаются они с одинаковой буквы, допустим "b". Я нажимаю на div, там показывается информация, в тот момент когда я нажимаю на другой див или пустое место на экране (т.е. не на див с id), то информация в выбранном перед этим диве становится прежней, а в нажатом диве появляется скрытая информация. И так до бесконечности. Трудность состоит в том, как сделать так, чтобы не было привязки к именам div'ов... Если так нельзя, то может как-то на js можно хранить предыдущий div, чтобы я могу просто его скрывать.
Заранее спасибо! С Рождеством Всех!! | |
|
|
|
|
|
|
|
для: grafen
(07.01.2011 в 02:01)
| | можно отталкиваться от этого скрипта.
здесь реализована поддержка работы с любой группой тегов.
id каждого тега - элемент массива
только вместо смены цвета, вам можно например поставить смену класса, открывая текущий и сворачивая все остальные в группе.
<style>.mm{color:#000000;}</style>
<a class="mm" id="idmm,1" onclick="req('a', 'idmm', 1, function(id){cred(id)}, function(id){cblack(id)})">ссылка 11</a>
<br><a class="mm" id="idmm,2" onclick="req('a', 'idmm', 2, function(id){cred(id)}, function(id){cblack(id)})">ссылка 12</a>
<br><a class="mm" id="idmm,3" onclick="req('a', 'idmm', 3, function(id){cred(id)}, function(id){cblack(id)})">ссылка 13</a>
<br><br><a class="mm" id="idmmm,1" onclick="req('a', 'idmmm', 1, function(id){cred(id)}, function(id){cblack(id)})">ссылка 21</a>
<br><a class="mm" id="idmmm,2" onclick="req('a', 'idmmm', 2, function(id){cred(id)}, function(id){cblack(id)})">ссылка 22</a>
<br><a class="mm" id="idmmm,3" onclick="req('a', 'idmmm', 3, function(id){cred(id)}, function(id){cblack(id)})">ссылка 23</a>
<script>
function gt(obj)
{
return document.getElementsByTagName(obj);
}
function ge(id)
{
return document.getElementById(id);
}
function req(tag, name, num, f1, f2)
{
var tar = gt(tag);
for (i = 0; i < tar.length; i++)
{
var id = tar[i].id.split(',');
if (id[0] == name)
{
if (id[1] == num) f1(id); else f2(id);
}
}
}
function cblack(id)
{
ge(id).style.color = '#000000';
}
function cred(id)
{
ge(id).style.color = '#0080FF';
}
</script>
|
| |
|
|
|
|
|
|
|
для: deimand
(07.01.2011 в 15:29)
| | Спасибо, это уже что-то, но нужно добавить функцию, когда жмём мимо div, то чтобы открытый div выполнял свою функцию и скрывался. Как такое сделать? | |
|
|
|
|
|
|
|
для: grafen
(07.01.2011 в 17:20)
| | Функцию, которая работает "мимо элемента", на сам элемент добавить нельзя.
Надо добавлять функцию на всё окно (весь документ).
Функция должна определять объект, по которому кликнули и сравнивать его с открытым div - если не он, тогда div закрывается и функция самоликвидируется - до открытия следующего div. | |
|
|
|