09.02.2015 16:06
1
Zdravím webtžníci,
měl bych takový obecný dotaz na jquery.

Mám web a ten má vnoření ul. Potřeboval bych každé ul prohledat a pokud má vnořené ul, tak přidat šipku na rozbalování a vnořené ul schovat a prohledat další ul a další a další.

Co pro to využít? Jak do toho?

Děkuju
09.02.2015 16:55
2
$("ul").each(function() {
$(this).closest('ul').addClass( "sipka" ); // nastylovat šipky přes css
$(this).closest('ul').hide();
});

napsal jsem to z hlavy, možná by to mělo fungovat, a možná jsem tě špatně pochopil ;-)
09.02.2015 22:56
3
Musis upresnit, jestli se maji prohledat vsechny urovne vnoreni nebo jen ta prvni. Vypsane reseni prohleda vsechny, jinak se musi omezit selector pro each na $('#kontejner_pro_ul > ul'). Blbe na vypsanem reseni je to, ze tridu sipka prida k elementu, ktery pak schova, takze zadna sipka nebude videt ( ovsem slo by mit sipku za tim UL a v css pak pouzit "ul.sipka+a" ). Lepsi by bylo
Kód:
$("#kontejner > ul > li").each(function() {
if($(this).closest('ul').length){
   $(this).addClass( "sipka" ).closest('ul').hide();
}
});
Podle mnozstvi sipek bych pak bud :

- pridal sipku vsude pri generovani seznamu a nechal ji schovanou pres css dokud nebude polozna seznamu mit tridu sipka
- misto addClass proste vlozit novy element do polozky seznamu pred ten UL

rozdil je v tom, ze v prvnim pripade (pro malo polozek) se muze pridat akce pro kliknuti na sipku hned a v druhem se musi nabindovat po vlozeni, nejlepe na konci pro vsechny a ne v tom each
10.02.2015 11:09
4
Díky kluci! Zase umím něco nového, sice si to napíšu trochu jinak, ale už vím jak na to :)