如果单击父级,则JavaScript无法显示子菜单

时间:2014-05-07 15:11:18

标签: javascript html

我发现了这个jQuery show submenu if parent have been clicked但是当我尝试将它合并到我预先制作的HTML页面时,代码似乎没有起作用,它立即显示子菜单,它确实没有切换到隐藏子菜单,我试图创建一个单独的JSP文件并将其链接到我的主HTML页面,但它不起作用

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

所以我刚刚将这个脚本添加到我的HTML页面中,这个页面不起作用

<script>
$('.sub-menu').hide();

$("li:has(ul)").click(function(){

$("ul",this).toggle('slow');
});
</script>

我不熟悉JS编码所以我需要一些关于如何正确合并代码的指导,下面是我添加了我尝试使用的代码的代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Test</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript" charset="utf-8"></script>
    <link rel="stylesheet" href="style.css" />

    <script type="text/javascript">
$(document).ready(function(){
$('.sub-menu').hide();

$("li:has(ul)").click(function(){

$("ul",this).toggle('slow');
});
});
</script>

    </head>

    <body class="oneColFixCtrHdr">

    <div id="container">
    <div id="header" style="background-color:#7BD12E">
    <h1 align="Left" style="color:#FFF; font-size: 18px;"><strong>Test</strong></h1>
      <!-- end #header --></div>

    <div id="mainContent">
        <ul>
        <li><a href="#">Item</a></li>
        <li><a href="#">Item</a>
            <ul class="sub-menu">
                <li><a href="#">Submenu</a></li>
                <li><a href="#">Submenu</a></li>
            </ul>
        </li>
        <li><a href="#">Item</a></li>
        <li><a href="#">Item</a>
            <ul class="sub-menu">
                <li><a href="#">Submenu</a></li>
                <li><a href="#">Submenu</a></li>
            </ul>
        </li>
        <li><a href="#">Item</a></li>
    </ul>
        <!-- end #mainContent -->
    </div>

    <div id="footer" style="background-color:#7BD12E">
    <p style="color:#FFF">Test</p>
    <!-- end #footer --></div>
    <!-- end #container --></div>
    </body>
    </html>

1 个答案:

答案 0 :(得分:3)

你需要将jquery包装在$(document).ready()

$( document ).ready(function() {
    $('.sub-menu').hide();
    $("li:has(ul)").click(function(){
        $("ul",this).toggle('slow');
    }); 
})

我会将其移至关闭</body>标记之前

根据BrettL的评论,您需要添加jquery库