2012-01-25 6 views
2

У меня есть два или более неупорядоченных списка с первым элементом списка в каждом видимом, а остальные скрыты.jquery display list items

Когда щелкнул первый список, он должен показать все остальные li ниже и скрыть любые другие лики, открытые в другой ul.

Возможно, я не могу показать это правильно.

Я не могу изменить имена классов из примера, который у меня есть, когда они сгенерированы внутри внутреннего кода ядра и используются для других элементов.

Спасибо за любую помощь.

http://jsfiddle.net/ukkpower/En7KV/4/

+0

* он должен должен * что? –

+0

* должен показать * Я думаю, – dfsq

+0

извините, да «должен показать» –

ответ

3

Попробуйте это:

$('ul').on('click','.maincat', 
      function(e){ 
       // prevents the default click action of the a element 
       e.preventDefault(); 

       // finds the sibling elements, and shows them if hidden, 
       // hides them if visible 
       $(this).siblings().toggle(); 

       // finds the closest ul ancestor of the clicked element 
       // finds the other ul siblings of that ancestor-ul 
       // finds the '.maincat' class element's siblings that are visible 
       // hides those visible elements 
       $(this) 
       .closest('ul') 
       .siblings('ul') 
       .find('.maincat') 
       .siblings('li:visible') 
       .hide(); 
      }); 

JS Fiddle demo.


Под редакцией добавить ссылки (ниже) и это примечание:

Пожалуйста, обратите внимание, что, по состоянию на JQuery 1.7, метод live() является устаревшим (и, как таковые, поддержка может, или более вероятно, будет отбрасываться). Для jQuery 1.7+ используйте метод on() (см. Ссылки ниже) и до 1.7 рекомендуется использовать метод delegate().

Наша рекомендация для этой заметки - документация по API для live(), см. Ссылки.

Обратите внимание

Ссылки:

+0

Спасибо, Дэвид, не смог бы этого сделать. Я узнал что-то новое. –

+0

Вы очень желанны; спасибо * вы * за принятие! =) –

+0

Отредактирован ответ для добавления ссылок и примечание об использовании 'on()' вместо 'live()'. –