mit java-script class ändern
bearbeitet von Rolf BHallo liebe Forumer,
ich brauche eure Unterstützung.
Folgende Ausgangssituation, ich möchte per java script eine class ändern
und zwar möchte ich es nutzen als switch wenn java-script deaktiviert ist:
mein css:
~~~css
.js-enabled [aria-expanded="false"] + .nav-group { display:none !important;}
.js-disabled [aria-expanded="false"] + .nav-group { display:block !important;}
~~~
`<li class="treespanmain `**js-disabled**`" role="treeitem">`
` <button aria-expanded="false"><span class="visually-hidden">HauptNavigation</span></button>`
~~~
[ ... ] .... and so on …
dabei möchte ich aus der classe für das li {treespanmain ***js-enabled***} machen
Bisher habe ich folgendes ausprobiert:
~~~js
<script>
// <botton> die Klasse "js-enabled" geben
function init() {
document.li.className = "js-disabled";
document.li.remove("js-enabled");
};
function globalClickManager(ev){
// ev.target gibt uns das Element auf dem der Click geschah.
// steuere expanded Buttons
if(ev.target.hasAttribute("aria-expanded") ){
ev.target.setAttribute("aria-expanded", ( ev.target.getAttribute("aria-expanded") == "false") );
}
// Buttons die lediglich den Click transferieren ähnlich zu label Elementen
else if(ev.target.hasAttribute("data-for-id") ){
document.getElementById( ev.target.getAttribute("data-for-id") ).click();
}
else if( Element.prototype.closest){
if( ev.target.closest("nav") == null ){
var temp = document.querySelector("nav [aria-expanded='true']");
if(temp) temp.setAttribute("aria-expanded","false");
}
}
}
[and so on] ...
~~~
ABER bei mir funktioniert das nicht, auch wenn java-script aktiviert ist bleibt das js-disabled stehen und wechselt NICHT!
Was mache ich falsch?
der einsiedelnde
mit java-script class ändern
bearbeitet von Rolf BHallo liebe Forumer,
ich brauche eure Unterstützung.
Folgende Ausgangssituation, ich möchte per java script eine class ändern
und zwar möchte ich es nutzen als switch wenn java-script deaktiviert ist:
mein css:
~~~css
.js-enabled [aria-expanded="false"] + .nav-group { display:none !important;}
.js-disabled [aria-expanded="false"] + .nav-group { display:block !important;}
~~~
~~~html
<li class="treespanmain **js-disabled**" role="treeitem">
<button aria-expanded="false"><span class="visually-hidden">HauptNavigation</span></button>
~~~
[ ... ] .... and so on …
dabei möchte ich aus der classe für das li {treespanmain ***js-enabled***} machen
Bisher habe ich folgendes ausprobiert:
~~~js
<script>
// <botton> die Klasse "js-enabled" geben
function init() {
document.li.className = "js-disabled";
document.li.remove("js-enabled");
};
function globalClickManager(ev){
// ev.target gibt uns das Element auf dem der Click geschah.
// steuere expanded Buttons
if(ev.target.hasAttribute("aria-expanded") ){
ev.target.setAttribute("aria-expanded", ( ev.target.getAttribute("aria-expanded") == "false") );
}
// Buttons die lediglich den Click transferieren ähnlich zu label Elementen
else if(ev.target.hasAttribute("data-for-id") ){
document.getElementById( ev.target.getAttribute("data-for-id") ).click();
}
else if( Element.prototype.closest){
if( ev.target.closest("nav") == null ){
var temp = document.querySelector("nav [aria-expanded='true']");
if(temp) temp.setAttribute("aria-expanded","false");
}
}
}
[and so on] ...
~~~
ABER bei mir funktioniert das nicht, auch wenn java-script aktiviert ist bleibt das js-disabled stehen und wechselt NICHT!
Was mache ich falsch?
der einsiedelnde
mit java-script class ändern
bearbeitet von Rolf BHallo liebe Forumer,
ich brauche eure Unterstützung.
Folgende Ausgangssituation, ich möchte per java script eine class ändern
und zwar möchte ich es nutzen als switch wenn java-script deaktiviert ist:
mein css:
.js-enabled [aria-expanded="false"] + .nav-group { display:none !important;}
.js-disabled [aria-expanded="false"] + .nav-group { display:block !important;}
<li class="treespanmain **js-disabled**" role="treeitem">
<button aria-expanded="false"><span class="visually-hidden">HauptNavigation</span></button>
[ ... ] .... and so on …
dabei möchte ich aus der classe für das li {treespanmain ***js-enabled***} machen
Bisher habe ich folgendes ausprobiert:
~~~JavaScript
<script>
// <botton> die Klasse "js-enabled" geben
function init() {
document.li.className = "js-disabled";
document.li.remove("js-enabled");
};
function globalClickManager(ev){
// ev.target gibt uns das Element auf dem der Click geschah.
// steuere expanded Buttons
if(ev.target.hasAttribute("aria-expanded") ){
ev.target.setAttribute("aria-expanded", ( ev.target.getAttribute("aria-expanded") == "false") );
}
// Buttons die lediglich den Click transferieren ähnlich zu label Elementen
else if(ev.target.hasAttribute("data-for-id") ){
document.getElementById( ev.target.getAttribute("data-for-id") ).click();
}
else if( Element.prototype.closest){
if( ev.target.closest("nav") == null ){
var temp = document.querySelector("nav [aria-expanded='true']");
if(temp) temp.setAttribute("aria-expanded","false");
}
}
}
[and so on] ...
~~~
ABER bei mir funktioniert das nicht, auch wenn java-script aktiviert ist bleibt das js-disabled stehen und wechselt NICHT!
Was mache ich falsch?
der einsiedelnde
mit java-script class ändern
bearbeitet von einsiedlerHallo liebe Forumer,
ich brauche eure Unterstützung.
Folgende Ausgangssituation, ich möchte per java script eine class ändern
und zwar möchte ich es nutzen als switch wenn java-script deaktiviert ist:
mein css:
.js-enabled [aria-expanded="false"] + .nav-group { display:none !important;}
.js-disabled [aria-expanded="false"] + .nav-group { display:block !important;}
<li class="treespanmain **js-disabled**" role="treeitem">
<button aria-expanded="false"><span class="visually-hidden">HauptNavigation</span></button>
[ ... ] .... and so on …
dabei möchte ich aus der classe für das li {treespanmain ***js-enabled***} machen
Bisher habe ich folgendes ausprobiert:
~~~JavaScript
<script>
// <botton> die Klasse "js-enabled" geben
function init() {
document.li.className = "js-disabled";
document.li.remove("js-enabled");
};
function globalClickManager(ev){
// ev.target gibt uns das Element auf dem der Click geschah.
// steuere expanded Buttons
if(ev.target.hasAttribute("aria-expanded") ){
ev.target.setAttribute("aria-expanded", ( ev.target.getAttribute("aria-expanded") == "false") );
}
// Buttons die lediglich den Click transferieren ähnlich zu label Elementen
else if(ev.target.hasAttribute("data-for-id") ){
document.getElementById( ev.target.getAttribute("data-for-id") ).click();
}
else if( Element.prototype.closest){
if( ev.target.closest("nav") == null ){
var temp = document.querySelector("nav [aria-expanded='true']");
if(temp) temp.setAttribute("aria-expanded","false");
}
}
}
[and so on] ...
~~~
ABER bei mir funktioniert das nicht, auch wenn java-script aktiviert ist bleibt das js-disabled stehen und wechselt NICHT!
Was mache ich falsch?
der einsiedelnde