Autor | Zpráva | ||
---|---|---|---|
Petík Profil * |
#1 · Zasláno: 6. 3. 2011, 13:16:24
Ahoj,
nevím jak problém přesně popsat, zkusím vysvětlit na příkladu mám následující HTML: <ul class="nav"> <li><a href="tab-noze">Nože</a></li> <ul class = "child"> <li><a class ="" href="tabch-neco">Nějký nože</a></li> </ul> <li><a href="tab-sekery">Sekery</a></li> </ul> a chtěl bych aby při kliknutí na odkaz nože bylo zkontrolováno zda má pod sebou nějakou další strukturu. Pokud ano tak preventDefault a zobrazit ten seznam. Při dalším kliknutím na něj by ho to mohlo zavřít, ale to už je nadstavba s kterou bych si pohrál. V jQuery jsem zkoušel něco jako: $('.child').hide(); $('.nav li a').click(function(e){ if($(this).parent('.nav:first').children('.child:first')[0]) { e.preventDefault(); $(this).parent('ul:first').children('ul:first').show(); } }); přiznávám že ta konstrukce s parnet a children je divná a vůbec né košér :D na ní to určitě stojí. Prosím poraďte někdo jak vybrat ten správný prvek a i jak do toho zakomponovat toggle ?. Za odpovědi předem moc díky. Petr Klimeš |
||
Chamurappi Profil |
#2 · Zasláno: 6. 3. 2011, 14:48:42
Reaguji na Petíka:
Předpokládám, že uvedený skript ani nefunguje správně ve všech prohlížečích. Zopakoval bych si HTML. |
||
Petík Profil * |
#3 · Zasláno: 6. 3. 2011, 15:39:05
Kupodivu to prohlížeče docela sežrali ;-). Ale chápu ul má být uzavřenej v předcházejícím li
<ul class="nav"> <li><a href="tab-noze">Nože</a> <ul class = "child"> <li><a class ="" href="tabch-neco">Nějaký nože</a></li> </ul> </li> <li><a href="tab-sekery">Sekery</a> </li> </ul> díky za upozornění. Problém s JS ale přetrvává. |
||
Petík Profil * |
#4 · Zasláno: 6. 3. 2011, 15:50:44
heureka ...
$('.child').hide(); $('.nav li a').click(function(e){ if($(this).parents('li:first').find('.child')[0]) { e.preventDefault(); $(this).parents('li:first').find('.child').toggle(); } }); snad to někomu někdy helfne ;-) .... GL&HF |
||
Chamurappi Profil |
#5 · Zasláno: 7. 3. 2011, 00:56:59 · Upravil/a: Chamurappi
Reaguji na Petíka:
„Kupodivu to prohlížeče docela sežrali ;-)“ Ale každý jinak. V části prohlížečů bylo <ul class="child"> uvnitř <li> .
„GL&HF“ 지지 노 리 Nejsi na chatu, piš česky. Připadá mi to zbytečně složité, když to srovnám s onclick="this.parentNode.className = this.parentNode.className ? '' : 'zabaleno'" (nebo s toggleClass v jQueryjštině) a trochou CSS.
|
||
Časová prodleva: 13 let
|
0