На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ElcnU, ANDLL, fatalist
  
> Как реализовать структуру дерева?
    Подскажите пожалуйста, как реализовывается структура дерева...Хотя бы простейшего. Желательно, чтобы поддерживалась большенством броузеров. В итоге на 3-ем уровне будут ссылки. Желательно в текстовом режиме. Т.е. без всяких там выпендронов под винду.

    Добавлено в :
    Уточню, я хочу чтобы у меня было следующее отображение:
    Цитата
    Пункт 1
    Подпункт 1
    Ссылка 1
    Ссылка 2
    Подпункт 2
    Подпункт 3
    Пункт 2
    Подпункт 4
    Подпункт 5
    Подпункт 6


    Чтобы это открывалось динамически из загруженных массивов данных.
    Сообщение отредактировано: SER-Gun -
      Ну еще точнее, можно было бы, чтобы я сразу такую менюху формировал, но чтобы вложенные элементы были не видны, а потом при нажатии на пункт появлялось и при повторном нажатии исчезало
        Велосипед изобретать не надо,
        дело в том, что любой HTML документ - это уже дерево.
        Примерно такое:
        ExpandedWrap disabled
           
          HTML
           |
           |----HEAD
           |      |---TITLE
           |      |---META
           |
           |----BODY
                  |
                  |----DIV
          ..................

        Другой вопрос, что не каждый умеет этим деревом пользоватся.
        Вот очень хорошая ссылка Основы DOM
        А конкретно про меню читай - Динамическая подгрузка меню (сообщение #447477)
          если тебе не надо периодически подгружать и отгружать часть меню, как в меню, которое ты найдешь по предложенной Mixxxом ссылке, (то есть все меню сразу при первой загрузке может уже находится в памяти), то могу помочь с готовым кодом. использовал xml+javascript(DOM)
          гарантирую работу в IE(больше нигде не тестил), но скрипт можно подправить так, что все будет ок.

          Добавлено в :
          сразу предупредждаю, я не такй спец как Mixxx, поэтому мое решение может быть не таким профессиональным. :) но точно скажу - выглядит оно попроще
          Сообщение отредактировано: shipbrother -
            Цитата
            shipbrother, 7.09.04, 00:31
            использовал xml+javascript(DOM)

            Интересно а как именно у тебя реализовано "сцепление"
            HTML с XML?
            С помощью тега <XML>?
              да, с помошью тега <XML>.
                Большое спасибо за советы. Но у меня ситуация такая, что не хотел бы использовать XML...Выходные данные у меня подгатавливает php скрипт. И мне просто необходимо правильно понять, как реализовывается это меню...Чтобы оно разворачивалось и сворачивалось при нажатии на пункты. Я предполагал сделать это следующим способом. Подгружать все, но некоторые блоки делать hidden, а потом можно их сделать видимыми? :whistle:
                  Цитата
                  SER-Gun, 7.09.04, 04:52
                  а потом можно их сделать видимыми?

                  Естественно! display: block; Для чего нужен? Даю ссылку на сайт. Там есть классные скрипты менюшек - глянь!
                  http://www.twinhelix.com/
                  P.S.: остальным тоже советую!
                    Я там поползал, что-то мне ничего не понравилось...
                    Есть вопрос следующий, как скрыть какой-то блок, а потом его вывести при нажатии на какой-то элемент. И как вообще выделить этот блок. Желательно на примерчике, если у кого есть.
                      Скрыть
                      ExpandedWrap disabled
                         
                        obj.style.display='none'

                      Показать
                      ExpandedWrap disabled
                         
                        obj.style.display='block'


                      А что значит выделить?
                        obj в данном случае это имя объекта?
                        Вот у меня предположим есть текст:
                        Ссылка 1
                        Ссылка 2
                        Как его выделить в единый блок? Который будет исчезать и появляться?
                          obj я так понял это то, что ты прописал в id

                          ExpandedWrap disabled
                            <a id="ssilka" .......>My Super Link</a>

                          Не знаю сработает ли это дело относительно <a>, но вот <div> прятать одно удовольствие, я думаю.
                          Кстати, а что насчет не display, а hidden? В чем разница? Противопоказания есть?
                            Astaroth, obj - это
                            ExpandedWrap disabled
                              document.getElementById(element_id)
                              Так и я обо что! Это ввиду и имел.
                                Цитата
                                Astaroth, 8.09.04, 19:09
                                Кстати, а что насчет не display, а hidden? В чем разница? Противопоказания есть?

                                :blink: А что такое hidden?
                                  Цитата
                                  Mixxx, 9.09.04, 10:00
                                  А что такое hidden?

                                  Пардон, был не прав, исправлюсь. Попутался с абсолютно другой вещью. :wall: Глюк-с... :blink:
                                    Вот примерчиков парочка, написано за 15 минут, так что
                                    не пужайтесь сильно ;)
                                    Читать с форума, наверное, невозможно, но если скопировать...
                                    Пара недостатков: жестко привязан к конструкции таблиц
                                    (для другой структуры будет необходимо немного переписать скрипты).
                                    А еще разобраться сложно :D

                                    ExpandedWrap disabled
                                       
                                      <html>
                                      <head>
                                      <style type="text/css">
                                      .ultd {
                                        border-bottom: 1px solid black;
                                      }
                                      .ultd {
                                        border-up: 1px solid black;
                                      }
                                      </style>
                                       
                                      <script language="JavaScript">
                                          function Toggle(node,tagDes) {
                                            if (node.nextSibling.nextSibling.style.display == 'none') {
                                              if (node.children.length > 0) {
                                                  if (node.children.item(0).tagName == "IMG") {
                                                    node.children.item(0).src = "minus.gif";
                                                  }
                                              }
                                              node.nextSibling.nextSibling.style.display = 'block';
                                              DoSize(document.all['upperTr'],tagDes,1);
                                              DoSizeL(document.all['upperTr'],tagDes,1);
                                            } else {
                                              if (node.children.length > 0) {
                                                if (node.children.item(0).tagName == "IMG") {
                                                  node.children.item(0).src = "plus.gif";
                                                }
                                              }
                                              node.nextSibling.nextSibling.style.display = 'none';
                                              DoSize(document.all['upperTr'],tagDes,2);
                                              DoSizeL(document.all['upperTr'],tagDes,2);
                                            }
                                          }
                                       
                                          function DoSizeL(node,tagDes,opcl) {
                                            if (node.nextSibling) {
                                              if (node.children.length>0) {
                                                for (i=0; i<node.nextSibling.children.item(0).children.item(0).children.item(0).children.length; i++) {
                                                  if (node.nextSibling.children.item(0).children.item(0).children.item(0).children.item(i).className=='i'+tagDes+'i') {
                                                    if (opcl==1) {node.nextSibling.children.item(0).children.item(0).children.item(0).children.item(i).style.display='block'; }
                                                    else { node.nextSibling.children.item(0).children.item(0).children.item(0).children.item(i).style.display='none'; }
                                                  }
                                                }
                                              }
                                              DoSizeL(node.nextSibling,tagDes,opcl);
                                            }
                                          }
                                       
                                          function DoSize(node,tagDes,opcl) {
                                            if (node.nextSibling) {
                                              if (node.nextSibling.className=='i'+tagDes+'i') {
                                                if (opcl==1) { node.nextSibling.style.display='block'; }
                                                else { node.nextSibling.style.display='none'; }
                                              }
                                              DoSize(node.nextSibling,tagDes,opcl);
                                            }
                                          }
                                       
                                      </script>
                                      </head>
                                       
                                      <body style="font-family: serif, Arial; font-size: 11;">
                                      <center>
                                      <table cellspacing="0" cellpadding="0">
                                      <tr style="background: #AAAAAA; height: 35px; position: relative;"><td colspan="2"><img align="left" style="position: relative; top: 7; left: -3;" src="down2.gif" border="0"><div style="position: relative; top: 11; left: -3; font-size: 13;">Московская ж.д.</div>&nbsp<div align="right" style="position: absolute; top: 11; font-size: 13; right: 0;"><b>ВНИИАС. Пример дерева.&nbsp&nbsp&nbsp</b></div></td></tr>
                                      <tr><td style="width: 130px; border-left: 1px solid black;"><div style="position: relative; top: 0; left: 0; width: 100%; height: 100%;">
                                      <TABLE cellspacing="0" cellpadding="0" BORDER="0" style="border-bottom: 1px solid black; width: 100%;">
                                        <tr><td style="width: 100%;">
                                          <a onClick="Toggle(this,'1');">&nbsp<IMG src="plus.gif" style="cursor: hand;" Click="alert('');"></a><font> C:\</font><DIV style="display: none; position: relative; left: 10;">
                                            <table cellspacing="0" cellpadding="0" border="0">
                                              <tr><td>
                                                <a onClick="Toggle(this,'2');">&nbsp<IMG src="plus.gif" style="cursor: hand;"></a><font> Program Files</font><DIV style="display: none;">
                                                  <table cellspacing="0" cellpadding="0" border="0">
                                                    <tr><td>&nbsp&nbsp&nbsp&nbsp<IMG src="dot.gif"> setup.exe</td></tr>
                                                    <tr><td>&nbsp&nbsp&nbsp&nbsp<IMG src="dot.gif"> MSoffice.exe</td></tr>
                                                    <tr><td>&nbsp&nbsp&nbsp&nbsp<IMG src="dot.gif"> conf.txt</td></tr>
                                                  </table>
                                                </DIV>
                                              </td></tr>
                                              <tr><td>
                                                <a onClick="Toggle(this,'3');">&nbsp<IMG src="plus.gif" style="cursor: hand;"></a><font> Works</font><DIV style="display: none;">
                                                  <table cellspacing="0" cellpadding="0" border="0">
                                                    <tr><td>&nbsp&nbsp&nbsp&nbsp<IMG src="dot.gif"> java.java</td></tr>
                                                    <tr><td>&nbsp&nbsp&nbsp&nbsp<IMG src="dot.gif"> jsp.jsp</td></tr>
                                                  </table>
                                                </DIV>
                                              </td></tr>
                                              <tr><td>
                                                <a onClick="Toggle(this,'4');">&nbsp<IMG src="plus.gif" style="cursor: hand;"></a><font> Windows</font><DIV style="display: none;">
                                                  <table cellspacing="0" cellpadding="0" border="0">
                                                    <tr><td>&nbsp&nbsp&nbsp&nbsp<IMG src="dot.gif"> win.exe</td></tr>
                                                  </table>
                                                </DIV>
                                              </td></tr>
                                            </table>
                                          </DIV>
                                        </td></tr>
                                        <tr><td style="width: 100%;">
                                          <a onClick="Toggle(this,'5');">&nbsp<IMG src="plus.gif" style="cursor: hand;" Click="alert('');"></a><font> D:\</font><DIV style="display: none; position: relative; left: 20;">
                                            <table cellspacing="0" cellpadding="0" border="0">
                                              <tr><td>
                                                <a onClick="Toggle(this,'6');">&nbsp<IMG src="plus.gif" style="cursor: hand;"></a><font> autorun</font><DIV style="display: none;">
                                                  <table cellspacing="0" cellpadding="0" border="0">
                                                    <tr><td>&nbsp&nbsp&nbsp&nbsp<IMG src="dot.gif"> autorun.inf</td></tr>
                                                  </table>
                                                </DIV>
                                              </td></tr>
                                            </table>
                                          </DIV>
                                        </td></tr>
                                      </TABLE></td><td>
                                      <div style="position: relative; top: 0; left: 0; width: 500px;">
                                      <TABLE cellspacing="0" cellpadding="0" style="border-right: 1px solid black; border-left: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;">
                                        <tr><td width="700">
                                            <table cellspacing="0" cellpadding="0">
                                               <tr name="upperTr" id="upperTr" width="700px"><td>
                                                 <table cellspacing="0" cellpadding="0">
                                                   <tr><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td></tr>
                                                   <tr><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td></tr>
                                                 </table>
                                                 </td>
                                               </tr>
                                               <tr class="i1i" style="display: none;"><td>
                                                 <table cellspacing="0" cellpadding="0">
                                                   <tr><td>
                                                     <table cellspacing="0" cellpadding="0">
                                                       <td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td></tr>
                                                     </table>
                                                   </td></tr>
                                                   <tr class="i2i" style="display: none;"><td>
                                                     <table cellspacing="0" cellpadding="0">
                                                       <tr><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td></tr>
                                                       <tr><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td></tr>
                                                       <tr><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td></tr>
                                                     </table>
                                                   </td></tr>
                                                 </table>
                                               </td></tr>
                                               <tr class="i1i" name="aaa" id="aaa" style="display: none;"><td>
                                                 <table cellspacing="0" cellpadding="0">
                                                   <tr><td>
                                                     <table cellspacing="0" cellpadding="0">
                                                       <td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td></tr>
                                                     </table>
                                                   </td></tr>
                                                   <tr class="i3i" style="display: none;"><td>
                                                     <table cellspacing="0" cellpadding="0">
                                                       <tr><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td></tr>
                                                       <tr><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td></tr>
                                                     </table>
                                                   </td></tr>
                                                 </table>
                                               </td></tr>
                                               <tr class="i1i" name="aaa" id="aaa" style="display: none;"><td>
                                                 <table cellspacing="0" cellpadding="0">
                                                   <tr><td>
                                                     <table cellspacing="0" cellpadding="0">
                                                       <td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td></tr>
                                                     </table>
                                                   </td></tr>
                                                   <tr class="i4i" style="display: none;"><td>
                                                     <table cellspacing="0" cellpadding="0">
                                                       <tr><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td></tr>
                                                     </table>
                                                   </td></tr>
                                                 </table>
                                               </td></tr>
                                               <tr class="i5i" name="aaa" id="aaa" style="display: none;"><td>
                                                 <table cellspacing="0" cellpadding="0">
                                                   <tr><td>
                                                     <table cellspacing="0" cellpadding="0">
                                                       <td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td></tr>
                                                     </table>
                                                   </td></tr>
                                                   <tr class="i6i" style="display: none;"><td>
                                                     <table cellspacing="0" cellpadding="0">
                                                       <tr><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td><td width="100"><center>-</center></td></tr>
                                                     </table>
                                                   </td></tr>
                                                 </table>
                                               </td></tr>
                                            </table>
                                        </td></tr>
                                      </TABLE>
                                      </center>
                                      </body>
                                       
                                      </html>
                                      Суть_Зла,
                                      1. пользуй свой ник, который ты уже зарегил !
                                      2. ето можно было и приатачить еслиб ты выполнил пункт 1.
                                        offtop: понял, понял, каюсь-каюсь... больше не буду.

                                        PS: то-то я думал, где аттач?? :D
                                        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                        0 пользователей:


                                        Рейтинг@Mail.ru
                                        [ Script execution time: 0,0445 ]   [ 15 queries used ]   [ Generated: 27.04.24, 18:21 GMT ]