jquery - 下拉菜单切换不起作用

标签 jquery html css

所以我正在尝试使用 jQuery 创建一个下拉菜单,并且我尝试了几种方法。我尝试对用户的操作使用 .hover()、.click() 和 mouseenter(),但似乎没有任何效果。我什至为事件尝试了 toggle() 和 slideDown() 但是当我悬停或单击“画廊”时屏幕上没有任何显示。我知道 jQuery 正在运行,因为 .hide() 正在运行。这是html和js

<html>
<head>
    <link type="text/stylesheets" rel="stylesheet" href="ceb.css">
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.3.min.js" type="text/javascript"></script>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</head>
<body>
    <div class="background">
        <div id="menu">
            <ul>
                <li><a href=#"">Home</a></li>
                <li><a href="#">Investments</a></li>
                <li><a href="#">About</a></li>
                <li><a href="#">Contact</a></li>
                <li><a class"drop-menu" href="#" >Galleries</a>
                <ul id="dropdown">
                    <li><a href="#">Weddings</a></li>
                    <li><a href="#">Engagements</a></li>
                    <li><a href="#">Birthdays</a></li>
                    <li><a href="#">Family</a></li>
                </ul>
                </li>
            </ul>
        </div>
    </div>
<script type="text/javascript">
    var main = function() {
        $('#dropdown').hide();

        $('.drop-menu').mouseenter(function() {
            $('#dropdown').slideDown();
        });
    };

    $(document).ready(main);
</script>
</body>

这是CSS

    .background {
    margin: 0;
    background-color: #000000;
    background-image: url("CEB Images/bodybackground.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    height: 799px;
}

#menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

#menu ul li {
    float: left;
    width: 150px;
    height: 50px;
    line-height: 30px;
    margin: 0;
    margin: 5px 5px;
    text-align: center;
}
#menu ul li:hover {
    background-color: #000066;
    border: double thick #000;
}

#menu ul li a {
    text-decoration: none;
    color: #0099FF;
}

#menu ul li li {
    color: #0099FF;
    display: block;
    margin: 0;
    background-color: #000066;
    height: 50px;
}

#menu ul li li a {
    text-decoration: none;
    color: #0099FF;
}

最佳答案

您在链接标记中类名前缺少等号:

<li><a class"drop-menu" href="#" >Galleries</a>
            ^ /* Add equals sign: */

<li><a class="drop-menu" href="#" >Galleries</a>

.. 因此 .drop-menu 选择器没有返回任何东西。

您也应该考虑存储您的选择:

var main = function() {
    var dropDown = $('#dropdown'),
        dropMenu = $('.drop-menu');

    dropDown.hide();

    dropMenu.mouseenter(function() {
        dropDown.slideDown();
    });
};

这样您就不必在每次用户将鼠标悬停在菜单项上时执行昂贵的 DOM 查找。

关于jquery - 下拉菜单切换不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30989342/

相关文章:

php - 如何更改jquery文件上传的默认上传路径

Jquery,从中心旋转

javascript - 发送前检查表单中的 URL(服务器端)

javascript - 在 Polymer 2.0 中动态更改样式

javascript - 导航选项卡保持某种颜色

javascript - javascript 重定向后 css 无法正确加载

javascript - jquery 每个 div 添加删除类无限

每次悬停链接时都会调用 PHP 代码?

html - 更改表单中最新搜索的样式?

javascript - .change() 在 .append() 之后不起作用