We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 1343 ☆ A M B ☆
    • 2,213 Posts
    Hello,

    I have been trying to figure out if it’s possible to collapse sub menus (Vertical Menu - menu code discussed here: http://modxcms.com/forums/index.php/topic,21190.0.html)

    If there isn’t already an easy fix out there could someone help me convert my existing script to work with wayfinder?

    Thanks again,
    AMDbuilder

    (I really can build sites despite these noobish posts... I’m just not used to working with complex code + modx yet...)

    Java:

    document.write("<style>dd.moreinfot1,dd.moreinfot2,dd.moreinfot3,dd.moreinfot4,dd.moreinfot5,dd.moreinfot6{display:none;}</style>");
    function toggle(e) {
        if (!e) {
            e = window.event;
        }
        if (e.target == null) {
            e.target = e.srcElement;
        }
        p = e.target.parentNode.parentNode;
        var el = p.getElementsByTagName("dd");
        for (var i = 0; i < el.length; ++i) {
            if (el[i].className == "moreinfo" + e.target.id) {
                el[i].style.display = (el[i].style.display != "block") ? "block" : "none";
            }
        }
        if (e.preventDefault) {
            e.preventDefault()
        }
        return false;
    }
    window.onload = function() {
        var loc = document.location.toString();
        var page = loc.substr(loc.lastIndexOf('/') + 1);
        var a = document.links;
        for (var i = 0; i < a.length; ++i) {
            if ((a[i].getAttribute("href") == page || a[i].getAttribute("href") == document.location) && a[i].parentNode && a[i].parentNode.className.toLowerCase().indexOf("moreinfo") == 0) {
                var cn = a[i].parentNode.className;
                var ddel = a[i].parentNode.parentNode.getElementsByTagName("dd");
                for (var z = 0; z < ddel.length; ++z) {
                    if (ddel[z].className == cn) {
                        ddel[z].style.display = "block";
                    }
                }
            }
        }
        var tog = document.getElementsByTagName("a");
        for (var i = 0; i < tog.length; ++i) {
            if (tog[i].className == "toggle") {
                tog[i].onclick = toggle;
            }
        }
    
    };
    
    


    Code Structure:

     <dl>
                <dt><a href="">link1</a></dt>
                <dt><a id="t1" class="toggle" href="">toggle1</a></dt>
                <dd class="moreinfot1"><a href="">link1a</a></dd>
                <dd class="moreinfot1"><a href="">link1b</a></dd>
                <dd class="moreinfot1"><a href="">link1c</a></dd>
                <dt><a href="">link1</a></dt>
                <dt><a href="">link2</a></dt>
                <dt><a id="t2" class="toggle" href="">toggle2</a></dt>
                <dd class="moreinfot2"><a href="">link2a</a></dd>
                <dd class="moreinfot2"><a href="">link2b</a></dd>
                <dd class="moreinfot2"><a href="">link2c</a></dd>
                <dt><a href="">link2</a></dt>
                <dt><a href="">link3</a></dt>
                <dt><a id="t3" class="toggle" href="">toggle3</a></dt>
                <dd class="moreinfot3"><a href="test.html">link3a</a></dd>
                <dd class="moreinfot3"><a href="">link3b</a></dd>
                <dd class="moreinfot3"><a href="">link3c</a></dd>
                <dt><a href="">link3</a></dt>  
            </dl>
            <dl>
                <dt><a href="">link4</a></dt>
                <dt><a id="t4" class="toggle" href="">toggle4</a></dt>
                <dd class="moreinfot4"><a href="">link4a</a></dd>
                <dd class="moreinfot4"><a href="">link4b</a></dd>
                <dd class="moreinfot4"><a href="">link4c</a></dd>
                <dt><a href="">link4</a></dt>
                <dt><a href="">link5</a></dt>
                <dt><a id="t5" class="toggle" href="">toggle5</a></dt>
                <dd class="moreinfot5"><a href="">link5a</a></dd>
                <dd class="moreinfot5"><a href="">link5b</a></dd>
                <dd class="moreinfot5"><a href="">link5c</a></dd>
                <dt><a href="">link5</a></dt>
                <dt><a href="">link6</a></dt>
                <dt><a id="t6" class="toggle" href="">toggle6</a></dt>
                <dd class="moreinfot6"><a href="">link6a</a></dd>
                <dd class="moreinfot6"><a href="">link6b</a></dd>
                <dd class="moreinfot6"><a href="">link6c</a></dd>
                <dt><a href="">link6</a></dt>  
            </dl>
    

      Patrick | Server Wrangler
      About Me: Website | Tweets |  MODX Hosting
      • 4310
      • 2,310 Posts
      Have you got a link to a working example so I can see it in action?

      David