Ik wil zo veel mogelijk behaviour dynamisch koppelen aan elementen. Hiervoor heb ik een init() functie, welke nu aan <a>-elementen een onclick toevoegt om het daaropvolgende <ul>-element te tonen of verbergen (een uitklap menu dus).
Omdat ik middels een loop dit toepas op meerdere <a>-elementen, bevat de variable submenu telkens opnieuw een <ul>-element. Maar wat schertst mijn verbazing: na afloop tonen en verbergen alle <a>-elementen hetzelfde <ul>-element, de laatste!
Mijn vermoeden is, dat dit te maken heeft met het meegeven van submenu.id. Ik wil daarvan de waarde meegeven aan showHideElement, en niet een referentie naar submenu, omdat die dus na afloop het laatste <ul>-element bevat. Is dat mogelijk? PHP kent &, VBScript kent ByRef/ByVal, C# heeft ref.
Ik kan natuurlijk ook de functie zo aanroepen: showHideMenu(this) waar this dan dus het <a>-element is, en dan daarbinnen het volgende <ul>-element zoeken en deze tonen of verbergen, maar dan heb ik een functie die alleen specifiek werkt voor dat menu (vanwege de structuur), en dat zou ik jammer vinden
JavaScript:
1
2
| // submenu is het <ul>-element toggle.onclick = function() {showHideElement(submenu.id);}; |
Omdat ik middels een loop dit toepas op meerdere <a>-elementen, bevat de variable submenu telkens opnieuw een <ul>-element. Maar wat schertst mijn verbazing: na afloop tonen en verbergen alle <a>-elementen hetzelfde <ul>-element, de laatste!
Mijn vermoeden is, dat dit te maken heeft met het meegeven van submenu.id. Ik wil daarvan de waarde meegeven aan showHideElement, en niet een referentie naar submenu, omdat die dus na afloop het laatste <ul>-element bevat. Is dat mogelijk? PHP kent &, VBScript kent ByRef/ByVal, C# heeft ref.
Ik kan natuurlijk ook de functie zo aanroepen: showHideMenu(this) waar this dan dus het <a>-element is, en dan daarbinnen het volgende <ul>-element zoeken en deze tonen of verbergen, maar dan heb ik een functie die alleen specifiek werkt voor dat menu (vanwege de structuur), en dat zou ik jammer vinden