• 17-02-2022, 06:36:43
    #10
    ZEON adlı üyeden alıntı: mesajı görüntüle
    querySelector ile aldığınız için bir tanesini alıyorsunuz. querySelectorAll kullanırsanız tümünü dizi olarak alırsınız.
    querySelectorAll kullandığınızda bir array elde edeceksiniz, fonksiyonu bu diziye uygulayarak tümünde çalışmasını sağlayabilirsiniz.

    Örnek;
    let items = document.querySelectorAll(".custom-class");
        items.forEach(element => {
            element.addEventListener('click', () => {
                element.classList.toggle("additional-class")
            });
        });
    Örneği kendinize göre uyarlayarak kullanabilirsiniz. jQuery kullanmak isterseniz mantık yine aynı.
    Açıklama için teşekkür ederim hocam, çok iyi anladım oradaki mantığı. Şu an dediğinizi uyguladım ve hepsinin ayrı ayrı çalışmasını sağladım. Artık hangisine tıklarsam ona ekleme yapıyor. Peki şu altındaki ".sub-menu"'ye eklemesin nasıl olacak? Onuda querySelectorAll ile array olarak alıp İç içe geçmiş 2 tane forEach mi kullanmalıyım onun için? Denedim ama yanlış yaptığımdan çeşitli hatalar aldım.

    Şu an kod şu şekilde:
    let submenu = document.querySelectorAll(".menu-item-has-children");
    submenu.forEach(element => {
        element.addEventListener('click', () => {
            element.classList.toggle( 'active' )
        });
    });
    .sub-menu için ekleme yaptığımda hangi .menu-item-has-children tıklanırsa tıklansın ilkinin altındaki .sub-menu için çalışıyor.
    let submenu = document.querySelectorAll(".menu-item-has-children");
    var addsubmenu = document.querySelector('.sub-menu');
    submenu.forEach(element => {
        element.addEventListener('click', () => {
            addsubmenu.classList.toggle( 'active' )
        });
    });
  • 17-02-2022, 06:42:10
    #11
    SkyGhostAir adlı üyeden alıntı: mesajı görüntüle
    Açıklama için teşekkür ederim hocam, çok iyi anladım oradaki mantığı. Şu an dediğinizi uyguladım ve hepsinin ayrı ayrı çalışmasını sağladım. Artık hangisine tıklarsam ona ekleme yapıyor. Peki şu altındaki ".sub-menu"'ye eklemesin nasıl olacak? Onuda querySelectorAll ile array olarak alıp İç içe geçmiş 2 tane forEach mi kullanmalıyım onun için? Denedim ama yanlış yaptığımdan çeşitli hatalar aldım.

    Şu an kod şu şekilde:
    let submenu = document.querySelectorAll(".menu-item-has-children");
    submenu.forEach(element => {
        element.addEventListener('click', () => {
            element.classList.toggle( 'active' )
        });
    });
    .sub-menu için ekleme yaptığımda hangi .menu-item-has-children tıklanırsa tıklansın ilkinin altındaki .sub-menu için çalışıyor.
    let submenu = document.querySelectorAll(".menu-item-has-children");
    var addsubmenu = document.querySelector('.sub-menu');
    submenu.forEach(element => {
        element.addEventListener('click', () => {
            addsubmenu.classList.toggle( 'active' )
        });
    });
    Döngü içerisinde ilgili elementin altındaki class (seçilecek class'a sahip element) seçilerek uygulanabilir. HTML yapıyı görebilirsek daha doğru yorum yapabiliriz.
  • 17-02-2022, 07:09:21
    #12
    SkyGhostAir adlı üyeden alıntı: mesajı görüntüle
    Açıklama için teşekkür ederim hocam, çok iyi anladım oradaki mantığı. Şu an dediğinizi uyguladım ve hepsinin ayrı ayrı çalışmasını sağladım. Artık hangisine tıklarsam ona ekleme yapıyor. Peki şu altındaki ".sub-menu"'ye eklemesin nasıl olacak? Onuda querySelectorAll ile array olarak alıp İç içe geçmiş 2 tane forEach mi kullanmalıyım onun için? Denedim ama yanlış yaptığımdan çeşitli hatalar aldım.

    Şu an kod şu şekilde:
    let submenu = document.querySelectorAll(".menu-item-has-children");
    submenu.forEach(element => {
        element.addEventListener('click', () => {
            element.classList.toggle( 'active' )
        });
    });
    .sub-menu için ekleme yaptığımda hangi .menu-item-has-children tıklanırsa tıklansın ilkinin altındaki .sub-menu için çalışıyor.
    let submenu = document.querySelectorAll(".menu-item-has-children");
    var addsubmenu = document.querySelector('.sub-menu');
    submenu.forEach(element => {
        element.addEventListener('click', () => {
            addsubmenu.classList.toggle( 'active' )
        });
    });
    Aşağıda bıraktığım kodu kullanabilirsiniz, çalışıyor şu anda.
    Tahmin ettiğim üzere wordpress için kullanacaksanız. Test ettim fakat eğer hata alırsanız element.childNodes[2] kısmındaki 2'yi değiştirin.
    Oradaki 2'nin ne olacağını da console.log(element.childNodes); yaparsanız .sub-menu olanın sayısını alıp yazdığınızda çözülür.

    var menu = document.querySelectorAll(".menu-item-has-children");
        
    menu.forEach(element => {
        element.addEventListener('click', () => {
            let subMenu = element.childNodes[2];
    
            subMenu.classList.toggle('active');
        });
    });