За последние 24 часа нас посетил 17471 программист и 1719 роботов. Сейчас ищут 1527 программистов ...

нужна помощь с дерево-меню

Тема в разделе "JavaScript и AJAX", создана пользователем lulik88, 11 ноя 2010.

  1. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    lulik88
    так. двойка. идем и читаем в гугле что есть сей жукьювери.

    я без нее ничего присоветовать не смогу.

    время на чтение - пять минут. я как раз налью себе чайку. и поедем дальше. тут работы на полчаса. но я за вас кодить не буду - =) я злой и страшный
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    второе: AJAX это такое умение javascript посылать запросы и получать ответы пока юзвер наивно доверяет своему броузеру.
    Не больше, не меньше. Поэтму фраза "Но некоторые и на AJAX пишут" - мне не ясна.
     
  3. lulik88

    lulik88 Активный пользователь

    С нами с:
    11 ноя 2010
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Odessa
    jQuery — библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML. Библиотека jQuery помогает легко получать доступ к любому элементу DOM, обращаться к атрибутам и содержимому элементов DOM, манипулировать ими. Также библиотека jQuery предоставляет удобный API по работе с Ajax.

    вот что тут вычитала)

    Сейчас уже стала сидеть за Ajax но вопрос все равно не закрываю)



    по авкам не видно что злой и страшный, наоборот милый) =)))))
     
  4. lulik88

    lulik88 Активный пользователь

    С нами с:
    11 ноя 2010
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Odessa
    igordata
    кому за полчаса, а кому нет, просто я в основном на чистом PHP в большей степени работаю нежели JS (потому то и передача через стиль работала.)
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    lulik88
    по авкам не видно что злой и страшный, наоборот милый
    Слежу за собой. Честное лицо стоит дороже. Сейчас матом оборал гендиректора одной из своих фирм. Девочку. За то что аську регистрировала работница, а не кто-то из доверенных. Стыдно, а что делать. Таких ситуаций допускать впредь нельзя, а не наорешь - не запомнит.

    И так.
    Вектор первый: jQuery сильно облегчает взаимодействие с элементами.
    Вектор второй: css позволяют хорошо прицелиться и затронуть только те элементы, какие надо =)

    Все =)

    задача: убрать стрелку.
    Решение: стрелка должна быть однозначно и без вариантов идентифицирована. После вызываем метод jQuery либо hide либо toggle. Событие вызова - клик по пункту меню.

    Соотв.

    если меню имеет вид
    HTML:
    1.  
    2. <ul>
    3.   <li>lalala</li>
    4.   <li>jujuju
    5.     <ul>
    6.       <li>sub jujuju 1</li>
    7.       <li>sub jujuju 2</li>
    8.       <li>sub jujuju 3</li>
    9.       <li>sub jujuju 4</li>
    10.     </ul>
    11.   </li>
    12.   <li>fufufu</li>
    13.   <li>hehehe</li>
    14. </ul>
    то при отрисовке мы можем раздать идентификаторы, которые гарантирую исчезновение стрелки.

    ща я таки пойду схожу за чаем, всеж таки третий раз чайник кипячу. пора и позавтракать, пять уже ж!
     
  6. lulik88

    lulik88 Активный пользователь

    С нами с:
    11 ноя 2010
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Odessa
    ну я и крики переношу, хотя меня матом также обругали, но ничо, как видите жива, при чем бывало и похуже когда чуть вниз не провалилась.

    =====================


    хм. ок, тоды потопала думать) точнее решать задачу)

    Потому что сейчас занимаюсь состоянием, ну как бы сказать, сохранение положения меню, вот что то такого, но там с использованием сессии) Конечно только сейчас поняла что без сессии никак не напишу)
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    дайте кстати html код вашего меню, что получается в результате отработки скрипта - охота взглянуть
     
  8. lulik88

    lulik88 Активный пользователь

    С нами с:
    11 ноя 2010
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Odessa
    Оо в плане?) время что ли?)

    я например могу до 10 раз выпить чашку чая)))))))))

    а завтракать -- я не кушаю) после работы чуть чуть перекусываю)
     
  9. lulik88

    lulik88 Активный пользователь

    С нами с:
    11 ноя 2010
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Odessa
    а тут HTML отстутствует у меня, здесь просто еще помимо того привязка Smatry, поэтому и получается все в одном коде которую выложила в самом начале) это отдельный код меню
     
  10. lulik88

    lulik88 Активный пользователь

    С нами с:
    11 ноя 2010
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Odessa
    о, кажись что-то врубаюсь) ^_^ подействовало чашка кофе)
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    lulik88
    а завтракать -- я не кушаю) после работы чуть чуть перекусываю)
    Это до первой язвы видать =)
    Я стараюсь не доводить. Просто утром не люблю есть =) а потом - времени нету.

    lulik88
    а тут HTML отстутствует у меня
    в браузере посмотрите код =) и скоируйте сюда
     
  12. lulik88

    lulik88 Активный пользователь

    С нами с:
    11 ноя 2010
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Odessa
    igordata
    ну я на фруктах сижу) например сейчас на бананах)

    большой слишком код((((( там просто еще TPL входит, вообщем запутано)
     
  13. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Дам-с.
     
  14. lulik88

    lulik88 Активный пользователь

    С нами с:
    11 ноя 2010
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Odessa
    Apple
    =))) просто лишний вес убрать надо)))))))))))


    igordata
    я вечером выложу код. просто с работы толку грузит долго очень, на тормозах работаю)
     
  15. lulik88

    lulik88 Активный пользователь

    С нами с:
    11 ноя 2010
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Odessa
    Apple
    пока не разберусь с меню - много кушатьт не буду))))
     
  16. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    при отрисовке меню вам надо раздать всем элементам соотв id и class'ы

    т.е. если это пункт меню выше которого нет никого - то допустим даем ему класс level_0
    его детям - level_1, и так до упора.

    потом
    если это первый пункт меню, то даем ему класс entry_first, последнему - enry_last, всем кто между - просто entry

    таким образом мы можем задать например что плюсики будут соеднины между собой точечками просто назначив картинку типа:
    |
    [+]
    |
    всем серединкам
    А последнему картинку
    |
    [+]

    и тогда будет красиво.

    Так или иначе у каждого пункта меню есть свой id в базе данных. Поэтому мы можем использовать этот номер тоже, присвоив класс id_123 для элемента с id 123
    тогда мы сможем ТОЧНО его скрыть-открыть + произвести все операции надо его элементами.
    Но я предпочитаю присваивать некошерные атрибуты в элементах. Т.е. в пункт я бы ввел доп атрибут типа entry_id='123'

    Выглядеть это будет теперь так:
    HTML:
    1.  
    2.  <ul id='menu_main' class='menu'>
    3. [...]
    4.     <li class='entry level_0' entry_id='123'>
    5.       <div class='entry_content'>
    6.         <div class='strelka'></div>
    7.         <h3>jujuju</h3>
    8.         <ul>
    9.           <li>sub jujuju 1</li>
    10.           <li>sub jujuju 2</li>
    11.           <li>sub jujuju 3</li>
    12.           <li>sub jujuju 4</li>
    13.          </ul>
    14.       </div>
    15.     </li>
    16. [...]
    17.  </ul>
    бонусы: мы можем легко управлять оформлением этого дела
    например оформление css
    [css]li.level_0 h3{font-size:11px;}
    li.level_1 h3{font-size:9px;}
    li.level_2 h3{font-size:9px;}
    /* Соответственно вот наша стрелка. мы можем задать разные картинки для разных уровней вложенности точно так же как и с заголовками */
    li.level_0 div.strelka {background-image: url('/images/strelka_0.png')}
    li.level_1 div.strelka {background-image: url('/images/strelka_1.png')}

    /*или можем задать стили по одному на всех */
    li.entry h3{font-size:11px;}
    li.entry div.strelka {background-image: url('/images/strelka.png')}
    [/css]

    Однако ж жукьвери не нуждается в этом, и может перебрать элементы и без таких изысков.

    но пока я вам рекомендовал бы сделать так:
    вешаем клик на весь див или ли
    $('ul.menu li').click(function () {
    $(this).ЧЕТА_ТАМ_ДЕТИ('div.strelka').toggle();
    });


    Вот я сейчас не могу вспомнить ( а может я и не знал?! о_О ) как обратиться к дитю. Ктонить сейчас придет и подсобит.
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    lulik88
    дай ссылку на страницу с меню, в конце концов, если не можешь добыть хтмл =)
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    вроде так
    $(this).children('div.strelka').toggle();
    соотв. тут же рядом можно открыть-скрыть пункты меню
    $(this).children('ul').toggle();
     
  19. lulik88

    lulik88 Активный пользователь

    С нами с:
    11 ноя 2010
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Odessa
    igordata
    на это и наткнулась я) сорри, подвисла за ноутом. )

    Вообщем, сейчас разберусь) эти ценные вещи)
     
  20. lulik88

    lulik88 Активный пользователь

    С нами с:
    11 ноя 2010
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Odessa
    igordata
    я пока на локалхосте работаю, сама ссылка отстуствует, просто еще толком не запущено, с работы писала, потому и смотрела и тестировала.

    а дома на локалхосте пишу)
     
  21. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    вобще не понимаю любви к деланью чего-то на локалхосте... но у меня много извращений...
     
  22. lulik88

    lulik88 Активный пользователь

    С нами с:
    11 ноя 2010
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Odessa
    igordata
    та приходится, а на работе там другая ссылка) так что приходится)
     
  23. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    жуть
    ты вобще давно работаешь?
     
  24. lulik88

    lulik88 Активный пользователь

    С нами с:
    11 ноя 2010
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Odessa
    igordata
    даже нет полгода) 3 месяц работаю)
     
  25. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    и че тебя дернуло идти в программеры?