简体   繁体   English

Javascript下拉列表可动态生成列表

[英]Javascript drop down for dynamically generated lists

I don't know where to begin with this. 我不知道从哪里开始。 I using wordpress that automatically generates lists for menu items, so I can't hardcode the mouseover into the html. 我使用自动生成菜单项列表的wordpress,因此无法将鼠标悬停在html中。 How can I make the lists into drop downs? 如何将列表放入下拉列表?

I tried to modify a tutorial and use something like this, but it doesn't work. 我试图修改一个教程并使用类似的内容,但是它不起作用。 I'm not really sure how to dynamically grab these menus and change them. 我不太确定如何动态获取这些菜单并进行更改。 Lil help?: 律助?:

window.onload = initAll;

function initAll() {
    var allLinks = document.getElementsByTagName("li");

    for (var i=0; i<allLinks.length; i++) {
        if (allLinks[i].className.indexOf("menu-item") > -1) {
            allLinks[i].onmouseover = toggleMenu;
        }
    }
}

function toggleMenu() {
    document.getElementById(thisMenuName).style.display = "block";

}

The ul's generated look like this: ul的生成如下所示:

    <div class="menu-header"><ul id="menu-top-nav" class="menu"><li id="menu-item-82" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-4 current_page_item menu-item-82"><a href="http://localhost/wordpress/">HOME</a></li> 
<li id="menu-item-83" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83"><a href="http://localhost/wordpress/about-ql/">About QL+</a> 
<ul class="sub-menu"> 
    <li id="menu-item-86" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-86"><a href="http://localhost/wordpress/about-ql/ql-laboratory/">QL+ LABORATORY</a></li> 
    <li id="menu-item-87" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-87"><a href="http://localhost/wordpress/about-ql/ql-leadership/">QL+ LEADERSHIP</a></li> 
    <li id="menu-item-84" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-84"><a href="http://localhost/wordpress/about-ql/a-history-of-ql/">A HISTORY OF QL+</a></li> 
    <li id="menu-item-85" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-85"><a href="http://localhost/wordpress/about-ql/fighting-for-life-the-film/">FIGHTING FOR LIFE, THE FILM</a></li> 
</ul> 
</li> 
<li id="menu-item-88" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-88"><a href="http://localhost/wordpress/our-work/">Our Work</a> 
<ul class="sub-menu"> 
    <li id="menu-item-93" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-93"><a href="http://localhost/wordpress/our-work/what-is-a-ql-challenge/">WHAT IS A QL+ CHALLENGE?</a></li> 
    <li id="menu-item-92" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-92"><a href="http://localhost/wordpress/our-work/successful-ql-projects/">SUCCESSFUL QL+ PROJECTS</a></li> 
    <li id="menu-item-90" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-90"><a href="http://localhost/wordpress/our-work/projects-in-development/">PROJECTS IN DEVELOPMENT</a></li> 
    <li id="menu-item-91" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-91"><a href="http://localhost/wordpress/our-work/submit-a-ql-challenge/">SUBMIT A QL+ CHALLENGE</a></li> 
    <li id="menu-item-89" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-89"><a href="http://localhost/wordpress/our-work/hear-from-ql-supporters/">HEAR FROM QL+ SUPPORTERS</a></li> 
</ul> 
</li> 
<li id="menu-item-94" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-94"><a href="http://localhost/wordpress/help-ql-help-our-heroes/">WAYS TO GIVE</a> 
<ul class="sub-menu"> 
    <li id="menu-item-95" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-95"><a href="http://localhost/wordpress/help-ql-help-our-heroes/donate-to-ql/">DONATE TO QL+</a></li> 
    <li id="menu-item-99" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-99"><a href="http://localhost/wordpress/help-ql-help-our-heroes/sponsorships/">SPONSORSHIPS</a></li> 
    <li id="menu-item-96" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-96"><a href="http://localhost/wordpress/help-ql-help-our-heroes/get-involved-volunteer/">VOLUNTEER!</a></li> 
    <li id="menu-item-97" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-97"><a href="http://localhost/wordpress/help-ql-help-our-heroes/ql-partners/">QL+ PARTNERS</a></li> 
    <li id="menu-item-98" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-98"><a href="http://localhost/wordpress/help-ql-help-our-heroes/ql-resources/">QL+ RESOURCES</a></li> 
</ul> 
</li> 
<li id="menu-item-100" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-100"><a href="http://localhost/wordpress/whats-happening/">WHAT&#8217;S HAPPENING</a> 
<ul class="sub-menu"> 
    <li id="menu-item-109" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-109"><a href="http://localhost/wordpress/whats-happening/press-releases/">Press Releases</a></li> 
    <li id="menu-item-103" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-103"><a href="http://localhost/wordpress/whats-happening/ql-in-the-news/">QL+ IN THE NEWS</a></li> 
    <li id="menu-item-112" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-112"><a href="http://localhost/wordpress/whats-happening/upcoming-events/">UPCOMING EVENTS</a></li> 
    <li id="menu-item-114" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-114"><a href="http://localhost/wordpress/whats-happening/special-events/">PREVIOUS EVENTS</a></li> 
</ul> 
</li> 
<li id="menu-item-105" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-105"><a href="http://localhost/wordpress/contact-ql/">CONTACT QL+</a></li> 
</ul></div> 

Here's a simple CSS version. 这是一个简单的CSS版本。 It unfortunately relies on the "hover" pseudo class which isn't supported on non <a> tags in IE 6. For that you'll need some JavaScript. 不幸的是,它依赖于IE 6中非<a>标记所不支持的“ hover”伪类。为此,您将需要一些JavaScript。

Demo: http://jsfiddle.net/NHvmp/1/ 演示: http//jsfiddle.net/NHvmp/1/

#menu-top-nav {
    border:1px solid red;   
}

#menu-top-nav li {
   position:relative;  

}

#menu-top-nav  ul.sub-menu {
    border:1px solid green;  
    background:yellow; 
    display:none;
    position:absolute;
    top:0px; 
    left: 100px;
    z-index:1;
}

#menu-top-nav > li:hover ul.sub-menu {
    display:block;
}

And here's a JS version 这是一个JS版本

http://jsfiddle.net/NHvmp/4/ http://jsfiddle.net/NHvmp/4/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM