Показать сообщение отдельно
  #1 (permalink)  
Старый 31.01.2010, 11:55
Интересующийся
Отправить личное сообщение для javascript Посмотреть профиль Найти все сообщения от javascript
 
Регистрация: 31.01.2010
Сообщений: 11

Древовидное меню проблема с toggle
Господа, окажите пожалуйста помощь в решение следующей проблемы:
ПХП формирует дерево приблизительно следующей структуры:
+ продукт 1
- продукт 2
   - продукт 2.1
      + продукт 2.1.1
      + продукт 2.1.2
   + продукт 2.2
   + продукт 2.3
+ продукт 3


Все через список:
<ul>
 <li>
  <a class=opened> - </a>продукт 2
   <ul>
    <li>
     <a class=opened> - </a>продукт 2.1
      <ul>
       <li>
        <a class=closed> + </a>продукт 2.1.1
       <li>
       <li>
        <a class=closed> + </a>продукт 2.1.2
       </li>
      </ul>
     </li>
     <li>
      <a class=opened> - </a>продукт 2.2
     </li>
     <li>
      <a class=opened> - </a>продукт 2.2
     </li>
    </ul>
   <li>
 </ul>


Из этого ПХП файла подгружается js скрипт:

$(document).ready(function(){
  //вешаю обработчик события на клик по ссылке + или -
  $("a").live("click", function () {
   var t = this;
    //раскрываю ветви дерева
    if($(t).hasClass("closed")){
       //здесь через ajax по клику на + подгружаю ветви 
    }

    //скрваю или раскрываю ветви сформированные пхп или подгруженные через ajax
    if($(t).hasClass("opened")){
         // переключаю видимость
         $(t).toggle(function(){
             $(t).nextAll("ul").hide();
	$(t).html(imgClosed);
          }, function(){
	$(t).nextAll("ul").show();
	$(t).html(imgOpened);
          });
      }

   });

 });


Но когда страница загружена, если нажать на "-" , например, "продукт 2" то при первом клике список не закроется, а начнет закрываться только при втором !?!?!?!?

Никак не могу понять природу такого поведения.......и что можно сделать чтоб исправить этот баг?

Последний раз редактировалось javascript, 31.01.2010 в 12:00.
Ответить с цитированием