For-Schleife, Fehler mit Array aus Elementen
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
ahnung
anklicken
array
bleiben
code
dom
element
frage
hilfe
http
liste
markierten elementen
mitte
paar
problem
schleife
schnelle antwort
url
verrutschen
vier
-
Hallo liebe Community,
ich habe heute ein kleines JavaScript-Rätsel für euch.
Das hier ist der Link zum Fiddle: Link
Es geht darum, dass man die Elemente der Liste anklicken kann, sodass sie markiert sind, und die Klasse 'active' haben. Die können dann per Drag and Drop in die Divs darunter (oder daneben je nachdem wie groß euer Screen ist), gesetzt werden. Das funktioniert alles, was nicht funktioniert ist etwas anderes.
Wenn jetzt ein paar von diesen li markiert sind und ich daneben klicke, sollten sie entmarkiert werden, das habe ich eig. auch schon geschafft, nur ergibt sich dabei ein komisches Verhalten. Wenn vier markiert sind bleiben zwei übrig wenn drei markiert sind immer das in der Mitte und bei zwei das untere. Das Problem muss irgendwo in der Schleife liegen und beim Array mit den markierten Elementen.
Ich hoffe ich habe das Fiddle gut genug kommentiert, sollte es Fragen geben, bitte fragt sie. Ich bin für jede Hilfe dankbar.
LG Dominic -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Die Lösung ist einfach:
document.onclick = function() { if(!mouse_is_inside) { activeItems = document.getElementsByClassName('listitem active'); while(activeItems.length > 0) activeItems[0].className = 'listitem'; } };
-
Wow, also erstmal danke für die Lösung, das funktioniert wirklich einwandfrei und daran hätte ich auch nie gedacht.
Hast du vllt. auch ne Ahnung, warum das mit einer for-Schleife nicht funktioniert?
LG Dominic -
buoance schrieb:
Dein Array ändert sich, sobald du die Elemente im DOM änderst. Da das Element aus dem Array verschwindet wenn du die CSS-Klasse änderst wird das Array auch immer kürzer und die Elemente verrutschen, deshalb funktioniert deine for-Schleife auch nicht so wie du dir das vorstellst.
Hast du vllt. auch ne Ahnung, warum das mit einer for-Schleife nicht funktioniert? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage