Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Mootools] element selectie met dynamische parent

Pagina: 1
Acties:

  • jbweb
  • Registratie: Oktober 2004
  • Laatst online: 04-10-2023

jbweb

professional noob

Topicstarter
Misschien ligt het aan het tijdstip, maar ik kom er niet uit.

Ik heb twee unordered lists onder elkaar staan in mijn DOM en deze heeft natuurlijk een parent element.
Wat dit parent element is staat niet vast. Sterker nog, mijn mootools scriptje bouwt op willekeurige plekken in mijn DOM de twee unordered lists.
HTML:
1
2
3
4
5
6
7
8
9
<parent_whatever>
    <ul class="selected">
        <li>optie 1</li>
    </ul>
    <ul class="options" style="display:none;">
        <li>opties 1</li>
        <li>opties 2</li>
    </ul>
</parent_whatever>


Als ik op het eerste list-item klik zou mijn mootools script ervoor moeten zorgen dat de eerste UL op "display:none" komt en de tweede juist "display:block" krijgt.
Maar ik weet niet hoe ik met mootools mijn tweede UL kan benaderen. Ik kan met de bekende dubbele $$ natuurlijk kijken naar:
JavaScript:
1
$$('ul.options');

Maar er is een grote waarschijnlijkheid dat deze vaker voorkomt in mijn hele HTML document.

Ik wil dus enkel de 'ul.options' in mijn actieve parent. Maar volgens mij kan ik een javascript var niet combineren met mijn normale string, zoals:
JavaScript:
1
$$(parentElement ' ul.options');


Iemand een idee hoe ik dit dynamisch aan kan pakken?

Als ik een leuke signature bedenk, zijn jullie de eerste die het weten


  • H004
  • Registratie: Maart 2006
  • Laatst online: 28-05 19:55
Kan je niet gewoon de tweede ul een ID meegeven?

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

De functies zoals element.getParent() en element.getFirst() pakken tegenwoordig in 1.2b gewoon een CSS selector mee :Y) (mits je die selectors meenemt)

Aanschouw ende leer:

JavaScript:
1
2
3
4
5
6
7
8
9
10
window.addEvent('domready', function() { 
 $$('ul.selected li').addEvent('click', function() { 
        this.getParent().getParent().getFirst('ul.options').setStyle('display', 'block');
       // this is de LI, parent is UL, parent is de 'wrapper'

       // maar het volgende kan ook als je bijv.zeker weet dat dat ding altijd in een DIV genest is:
        this.getParent('div').getFirst('ul.options').setStyle('display', 'block');
   });

});


Don't u just love mootools? O+

[ Voor 17% gewijzigd door SchizoDuckie op 11-03-2008 20:46 ]

Stop uploading passwords to Github!


  • jbweb
  • Registratie: Oktober 2004
  • Laatst online: 04-10-2023

jbweb

professional noob

Topicstarter
Ik maakte nog gebruik van versie 1.11, maar na je enthousiaste verhaal ben ik meteen maar gaan kijken of 1.2beta ook wat voor mij was. En na een aantal kleine aanpassingen in mijn scripts bleek alles keurig te werken ;)

En ook het de getParent(). Maar werkte dat dan heel anders in 1.11?

Ondanks dat geef ik je helemaal gelijk. I love mootools _/-\o_

Als ik een leuke signature bedenk, zijn jullie de eerste die het weten


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

jbweb schreef op woensdag 12 maart 2008 @ 12:21:
Ik maakte nog gebruik van versie 1.11, maar na je enthousiaste verhaal ben ik meteen maar gaan kijken of 1.2beta ook wat voor mij was. En na een aantal kleine aanpassingen in mijn scripts bleek alles keurig te werken ;)

En ook het de getParent(). Maar werkte dat dan heel anders in 1.11?

Ondanks dat geef ik je helemaal gelijk. I love mootools _/-\o_
Voor zover ik weet zat er in 1.1 nog geen optie voor een optionele selector in 1.1 :)

Stop uploading passwords to Github!