[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрыть/Показать
RULEVOY
Суть проблемы: Псотавил движок форума ИПБ. Добавил свой бб-код для скрытия больших сообщений в строчку с функцией Скрыть/Показать.
Тоесть пользователь помещает свое сообщение между[showhide]и [/showhide] и сообщение выводится в виде строчки со сцылкой Показать, при нажатии Показать выводится все сообщение и ссылка меняется на Скрыть. итд. Если на странице присутствует только одно такое сообщение, то все хорошо, но если пользователь заключил куски своего тескста в несколько пар тегов,тем самамым создал два спойлера Скрыть/Показать в своем сообщении, то начинаются проблемы.
Смысл в том что если нажимаешь на кномпку ПОКАЗАТЬ, то раскрывается одно окно и во втором при нажатии на кнопку ПОКАЗАТЬ, происходит просто закрытие первого окна. Нужно сделать так, получается, что id генерировалось случайно при каждом вызове или как? Что бы можно было использовтаь несколько Скрыть/показать в посте и что-бы они работали автономно друг от друга.

Вот мой код:

Код
<script type="text/javascript" language="JavaScript1.2">
<!--
function _getElementById(id){
  var item = null;

  if (document.getElementById){
    item = document.getElementById(id);  } else if (document.all){
    item = document.all[id];
  } else if (document.layers){
          item = document.layers[id];
  }

  return item;
}

function DoDiv(id) {
  var item = _getElementById(id);

  if (!item){
  } else if (item.style){
    if (item.style.display == 'none'){
        item.style.display = '';
    } else {
        item.style.display = 'none';
      }
  } else {
      item.visibility = 'show';
  }
}

function ShowOrHide(d1, d2) {
  if (d1 != ''){
      DoDiv(d1);
  }

  if (d2 != ''){
      DoDiv(d2);
  }
}
//-->
</script>
      <table width="100%" cellpadding="0" cellspacing="0" style="border-left: 2px solid rgb(152, 24, 24); border-right: 2px solid rgb(152, 24, 24);border-top: 2px solid rgb(152, 24, 24);border-bottom: 2px solid rgb(152, 24, 24);" >
            <tr  bgcolor="#C0C0C0"  >
                  <td style="vertical-align:middle;">  В этом сообщении содержится скрытый текст.</td>
                  <td width="90"  height="21">
                        <a href="java script:ShowOrHide('conf', 'conf-open')" id="conf-open" onclick="java                 script:ShowOrHide('conf-close')" border="0">
                              <img "src="http://10.10.65.3/style_images/mantlet/show.gif">
                        </a>
                        <a href="java script:ShowOrHide('conf', 'conf-close')" id="conf-close" style="display: none;" onclick="java script:ShowOrHide('conf-open')" >
                              <img "src="http://10.10.65.3/style_images/mantlet/hide.gif">
                        </a>
                  </td>
      </tr>
      <tr>
                  <td colspan="2">
                        <div id='conf' style='display: none;'>
                              {content}
                        </div>
                  </td>
      </tr>
</table>



это собсна сам код бб-кода sleep.gif
Поправьте , пожалуйста сам код, что бы не возникало выше описанорй проблемы, пожалуйстооо!
заранее большое спасибо.




Спустя 28 дней, 23 часа, 1 минута, 4 секунды (4.10.2007 - 15:53) Мешок написал(а):
<script type="text/javascript" language="javascript">
function ShowOrHide(d1) {
var item = document.getElementById(d1)

if (item.style.display == "none"){
item.style.display = "";
document.getElementById("img").src = "http://10.10.65.3/style_images/mantlet/hide.gif";
} else {
item.style.display = "none";
document.getElementById("img").src = "http://10.10.65.3/style_images/mantlet/show.gif";
}

}
//-->
</script>
<table width="100%" cellpadding="0" cellspacing="0" style="border-left: 2px solid rgb(152, 24, 24); border-right: 2px solid rgb(152, 24, 24);border-top: 2px solid rgb(152, 24, 24);border-bottom: 2px solid rgb(152, 24, 24);" >
<tr bgcolor="#C0C0C0" >
<td style="vertical-align:middle;"> В этом сообщении содержится скрытый текст.</td>
<td width="90" height="21">
<a href="java script:ShowOrHide('conf1')">
<img id="img" "src="http://10.10.65.3/style_images/mantlet/show.gif">
</a>
</td>
</tr>
<tr>
<td colspan="2">
<div id='conf1' style='display: none;'>
{content}
</div>
</td>
</tr>
</table>


Если еще надо.
а далее добавляешь поля с "conf2" и так далее. Как делать, чтоб индекс увеличивался на 1 при след скрываемом сообщении уже нужно смотреть какими средствами осуществляется вывод страницы. Если что в АСЮ.


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.