Új hozzászólás Aktív témák

  • biker

    nagyúr

    üd urak, kicsit elakadtam. illetve nagyon, és már szénné izzasztottam a chatgpt-t is, de nem ad jobb választ, ennél csak rosszabb működést tud

    Van egy oldal, amihez a tartalmat különböző gépek méréseiből generálják, ehhez generálás után hozzáadják a scripteket, amik már elkészültek, többek közt egy automatikus collapse menüt bootstrap alapokon
    [link] itt megtekinthető
    A gond a footerbe beszúrt kóddal lenne, amit sehogy nem tudok jobb működésre bírni.

    <script>            /* GeriSoft added collapse menu close opened items which not need */            document.addEventListener("DOMContentLoaded", function () {                const menu = document.getElementById("menu");                            // Ha egy "collapse" elem megnyílik                menu.addEventListener("show.bs.collapse", function (e) {                    const target = e.target;                                // Bezárjuk az összes másik főmenüt (közvetlen gyerekek az id="menu"-n belül)                    const mainMenuItems = menu.querySelectorAll(':scope > .nav-item > .collapse.show');                    mainMenuItems.forEach(item => {                        if (item !== target) {                            const parentul = document.getElementById(item.id);                            console.log("Becsukódó elem2 parent.id:", parentul.dataset.parent);                            const bsCollapse = bootstrap.Collapse.getInstance(item);                            if (bsCollapse) {                                bsCollapse.hide();                            }                        }                        console.log("Megnyíló elem:", target);                                            });                                    });                            // Ha egy "collapse" elem bezárul                menu.addEventListener("hide.bs.collapse", function (e) {                    const target = e.target;                                    // Bezárjuk az összes gyermeket, kivéve az aktuálisan érintett elemet                    const childMenus = target.querySelectorAll(".collapse.show");                    childMenus.forEach(item => {                        const parentul = document.getElementById(item.id);                        console.log("Becsukódó elem1 parent.id:", parentul.dataset.parent);                        console.log("Becsukódó elem1 item.id:", item.id);                        console.log("Becsukódó elem1 target.id:", target.id);                        if (item !== target) { // Csak azokat zárjuk, amelyek nem az aktuális célpont                            const bsCollapse = bootstrap.Collapse.getInstance(item);                            if (bsCollapse) {                                bsCollapse.hide();                            }                        }                    });                    console.log("Becsukódó elem:", target);                });            });    </script>

    A helyes működés az lenne, hogy egy szülő lehet nyitva, és annak egy ygermeke és annak gyermeke, ha beljebb megyünk, vagyis egy másik szülő nyitása bezárja a nyitott szülőt (ez jó), egy testvár megnyitása bezárja a másik testvért ami nyitva van (ez is jó) de a gyermek szülőjének, aminek a testvérét bezártuk, nyitva kellene maradnia, és jelenleg bezáródik a nyomorultja :(
    már mindent kipróbáltam, az is megvan, hogy mi a bezáródó és a nyíló ul elem id-ja és mi a parent ul id-ja, de innen akármit próbálok a feltételbe brakni, akkor is bezárja a szülőt is
    van valami tipp, mit kell javítani benne?

    miért így szúrja be a kódot??? bocs, próbálom javítani

Új hozzászólás Aktív témák

Hirdetés