javascript - jQuery 菜单在第二次单击时不隐藏

标签 javascript jquery html

我正在尝试学习一些jquery,我想制作一个简单的下拉菜单,该下拉菜单在开始时隐藏,但在您单击某些文本时出现,但在您再次单击它时隐藏。这是代码:

基本 HTML:

<h1 class="Menu">Menu</h1>

    <div id="submenu">
        <ul>
            <a href="#"><li>Menu 1</li></a>
            <a href="#"><li>Menu 2</li></a>
            <a href="#"><li>Menu 3</li></a>
            <a href="#"><li>Menu 4</li></a>
            <a href="#"><li>Menu 5</li></a>
            <a href="#"><li>Menu 6</li></a> 
        </ul>
    <div>

jQuery:

$(document).ready(function() {
   $("#submenu").hide(); 
});

$(".Menu").click(function() {
    $("#submenu").show("slow");
    $(".Menu").text("Close Menu");
    $(".Menu").removeClass( "Menu" ).addClass( "CloseMenu" );
});
$(".CloseMenu").click(function() {
    $("#submenu").hide();
    $(".CloseMenu").text("Menu");
    $(".CloseMenu").removeClass( "CloseMenu" ).addClass( "Menu" );
});

是否是因为该类在页面加载时没有注册到 DOM 中,所以它不知道它在寻找什么? Also here is the JS Fiddle I was doing it in.

最佳答案

这里,使用这个js代码

$(document).ready(function() {
   $("#submenu").hide(); 
});

$("#mainmenu").click(function() {
    if($("#submenu").is(":hidden")){
        $("#submenu").show("slow");
        $(".Menu").text("Close Menu");
        $(".Menu").removeClass( "Menu" ).addClass( "CloseMenu" );
    }
    else{
        $("#submenu").hide();
        $(".CloseMenu").text("Menu");
        $(".CloseMenu").removeClass( "CloseMenu" ).addClass( "Menu" );
    }
});

不工作的原因是您正在运行时更改类。仅当您有静态选择器时才使用 .click。就像我使用 ID 一样

关于javascript - jQuery 菜单在第二次单击时不隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18878126/

相关文章:

html - 删除文本之间存在的额外空间

javascript - 从变量设置进度条值

javascript - 如何使用javascript从数组对象中获取所有值?

javascript - 如何使用 jQuery 过滤特定大小的图像?

html - CSS背景图片,内容脱离页面

javascript - 正在变化的图像的褪色效果

javascript - 使用 Boomerang 库与 Resource Timing API 的优势

javascript - 将 apply 与函数构造函数一起使用

javascript - 如何使文本区域动态变化?

javascript - 如何使用 shuffle.js 响应式地调整图像大小?