Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Отследить, чтобы был активен только один div
 
 автор: grafen   (07.01.2011 в 02:01)   письмо автору
 
 

Всем привет, столкнулся с проблемой.

На странице много div'ов, но начинаются они с одинаковой буквы, допустим "b". Я нажимаю на div, там показывается информация, в тот момент когда я нажимаю на другой див или пустое место на экране (т.е. не на див с id), то информация в выбранном перед этим диве становится прежней, а в нажатом диве появляется скрытая информация. И так до бесконечности. Трудность состоит в том, как сделать так, чтобы не было привязки к именам div'ов... Если так нельзя, то может как-то на js можно хранить предыдущий div, чтобы я могу просто его скрывать.

Заранее спасибо! С Рождеством Всех!!

  Ответить  
 
 автор: deimand   (07.01.2011 в 15:29)   письмо автору
 
   для: 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>

  Ответить  
 
 автор: grafen   (07.01.2011 в 17:20)   письмо автору
 
   для: deimand   (07.01.2011 в 15:29)
 

Спасибо, это уже что-то, но нужно добавить функцию, когда жмём мимо div, то чтобы открытый div выполнял свою функцию и скрывался. Как такое сделать?

  Ответить  
 
 автор: Абырвалг   (08.01.2011 в 14:34)   письмо автору
 
   для: grafen   (07.01.2011 в 17:20)
 

Функцию, которая работает "мимо элемента", на сам элемент добавить нельзя.
Надо добавлять функцию на всё окно (весь документ).
Функция должна определять объект, по которому кликнули и сравнивать его с открытым div - если не он, тогда div закрывается и функция самоликвидируется - до открытия следующего div.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования