Rolf B: Icon Flyout / slidern ähnlich wie bei meiner Navigation

Beitrag lesen

Hallo einsiedler,

Bitte nicht so "abstrakt" alles. Ich bin nicht so rutiniert wie ihr es seid.

Was in JavaScript eine Funktion mit Parametern ist, das ist Dir bisher nicht klar?

Die Funktion flyoutExtension kann es unter diesem Namen nur einmal geben. Wenn Du sie zweimal reinschreibst, gibt's einen Fehler im JavaScript. Aber einmal reicht auch, wenn Du ihr die ID als Parameter mitgibst.

flyoutExtension('menu-toggle');
flyoutExtension('titel-toggle');

function flyoutExtension (toggleId) {

	const toggle = document.querySelector('#' + toggleId);

	toggle.addEventListener('click', function() {
		const currentState = toggle.getAttribute('aria-expanded');
		const newState = currentState === 'true' ? 'false' : 'true';
		toggle.setAttribute('aria-expanded', newState);
		const isExpanded = toggle.getAttribute('aria-expanded') === 'true';
        menu.style.display = isExpanded ? 'block' : 'none';
	});
}			

Die Funktion wird zweimal aufgerufen. Beim ersten Mal enthält toggleId den Wert 'menu-toggle', beim zweiten Mal den Wert 'titel-toggle'. Da die Struktur des flyout-Widgets in beiden Fällen gleich ist, kann man es auch mit gleichartigem Code steuern. Der Unterschied ist nur die ID, über die man einsteigt.

Die lokale const toggle Variable wird bei beiden Aufrufen verwendet, aber das macht nichts. Zwei Aufrufe, zwei verschiedene Aufrufkontexte, das hält JavaScript auseinander. Beide Toggles bekommen ihren click-Handler und der bearbeitet dann das Toggle, für das er registriert wurde

Rolf

--
sumpsi - posui - obstruxi
0 64

Icon Flyout / slidern ähnlich wie bei meiner Navigation

einsiedler
  • css
  • html
  • meinung
  1. 0
    Rolf B
    1. 0
      einsiedler
      1. 0
        Rolf B
        1. 2
          Gunnar Bittersmann
          • javascript
        2. 0
          einsiedler
          1. 1
            Rolf B
            1. 0
              einsiedler
              1. 1
                Rolf B
                1. 0
                  einsiedler
                  1. 0
                    Rolf B
                    1. 0
                      einsiedler
                      1. 0
                        Rolf B
              2. 1
                Gunnar Bittersmann
                • html
                1. 0
                  einsiedler
            2. 0
              einsiedler
              1. 0
                einsiedler
            3. 0
              einsiedler
              1. 0
                Rolf B
                1. 0
                  einsiedler
                  1. 0
                    Rolf B
                    1. 0
                      einsiedler
                      1. 0
                        Rolf B
                        1. 1
                          Gunnar Bittersmann
                          • javascript
                          1. 2
                            Rolf B
                            1. 1
                              Gunnar Bittersmann
                              1. 0
                                einsiedler
                                1. 0
                                  einsiedler
                                  1. 1
                                    Rolf B
                                    1. 0
                                      einsiedler
                                      1. 0
                                        Rolf B
                                      2. 1
                                        Rolf B
                                        1. 0
                                          einsiedler
                                          1. 0
                                            Rolf B
                                            1. 0
                                              Gunnar Bittersmann
                                              • css
                                              • javascript
                                              1. 1
                                                Rolf B
                                                1. 1
                                                  Gunnar Bittersmann
                                                  • html
                                                  • javascript
                                                  1. 0
                                                    einsiedler
                                                    1. 0
                                                      Gunnar Bittersmann
                                                      • javascript
                                                      1. 0
                                                        einsiedler
                                                        1. 1
                                                          Auge
                                                          • browser
                                                          • css
                                                          • editor
                                                          1. 0
                                                            Gunnar Bittersmann
                                                            1. 0
                                                              Auge
                                                              1. 0
                                                                JürgenB
                                                                1. 0
                                                                  Auge
                                                                  1. 0
                                                                    JürgenB
                                                              2. 0
                                                                Gunnar Bittersmann
                                                                • browser
                                                                • css
                                                          2. 0
                                                            einsiedler
                                                            1. 1
                                                              Auge
                                                              • css
                                                              • editor
                                                              1. 0

                                                                Lighting vs. Lightning

                                                                Der Martin
                                                                • rechtschreibung
                                          2. 0
                                            Nico R.
                                            1. 0
                                              Rolf B
                                            2. 0
                                              einsiedler
                                              1. 0
                                                Nico R.
      2. 1
        Rolf B
      3. 0
        Ryuno-Ki
        1. 0
          Gunnar Bittersmann
          • html
          1. 0
            Ryuno-Ki
            1. 0
              Rolf B
              1. 0
                Gunnar Bittersmann
                1. 0
                  Matthias Scharwies
                  • html
                  • spiel
                  1. 0
                    Gunnar Bittersmann
                2. 0
                  Rolf B
                  1. 0
                    Gunnar Bittersmann
                    • internationalisierung
                    • sprache