为什么我的JS不工作?

时间:2013-07-08 09:29:56

标签: javascript html5 css3 drop-down-menu

所以我有一段代表菜单本身的HTML:

<div id="menu">
                <ul class="pnav">
                    <li><a href="#">Home</a></li>
                    <li>
                        <a href="#">About GM</a>
                        <ul class="cnav">
                            <li><a href="#">Team</a></li>
                            <li><a href="#">Events</a></li>
                            <li><a href="#">Testimonials</a></li>
                            <li><a href="#">Contact</a></li>
                        </ul>
                    </li>
                    <li><a href="#">Tournaments</a></li>
                    <li><a href="#">Membership</a></li>
                </ul>
            </div>

我也有这个菜单的CSS:

ul.pnav {
    list-style: none;
    padding: 0 20px;    
    margin: 0;
    width: 920px;
    background: #222;
    font-size: 1.2em;
    background: url(topnav_bg.gif) repeat-x;
}
ul.pnav li {
    display:inline;
    margin: 0;  
    padding: 0 15px 0 0;
    position: relative;
}
ul.pnav li a{
    padding: 10px 5px;
    color: #fff;
    text-decoration: none;
}
ul.pnav li a:hover{
    background: url(topnav_hover.gif) no-repeat center top;
}

ul.pnav li ul.cnav {
    list-style: none;
    position: absolute; /*--Important - Keeps subnav from affecting main navigation flow--*/
    left: 0; top: 35px;
    background: #333;
    margin: 0; padding: 0;
    display: none;
    width: 170px;
    border: 1px solid #111;
}
ul.pnav li ul.cnav li{
    display:block;
    margin: 0; padding: 0;
    border-top: 1px solid #252525;
    border-bottom: 1px solid #444;
    clear: both;
    width: 170px;
}

我有这个JS:

$(document).ready(function(){

    //$("ul.cnav").parent().append("<span></span>");

    $("ul.pnav li").click(function() {

        $(this).parent().find("ul.cnav").slideDown('fast').show();

        $(this).parent().hover(function() {
        }, function(){  
            $(this).parent().find("ul.cnav").slideUp('slow');
        });

    });

});

我自己并没有写完,只是自定义它,在HEAD HTML标签中这样调用:

<script src="js/dropdown.js"></script>

但是下拉列表无法正常工作,可以帮助我并向我解释一些解决方案吗?:D

3 个答案:

答案 0 :(得分:1)

添加:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" ></script>

在上面之前 - 如果你错过了包含jQuery的标签。

答案 1 :(得分:0)

在包含任何js文件之前,您应该包含'jquery.js'文件,您可以在此处下载http://jquery.com/download/

答案 2 :(得分:0)

我怀疑你只是忘了加载jQuery。

此外,我对您的脚本进行了一点改动,使菜单只打开其子子区域。

此:

$("ul.pnav li").click(function() {

变成了:

$("ul.pnav li a").click(function() {

因为它似乎更适合下面的线。

实例:http://jsfiddle.net/DnGRm/