javascript - 单击列表项时关闭下拉列表

标签 javascript jquery html

我有一个在悬停时激活的下拉列表(并在悬停离开时关闭)。就悬停而言,它工作正常。当用户单击下拉列表中的列表项之一时,我希望关闭下拉列表,就像他们将鼠标从列表中移开一样。这就是我被困的地方。

$(document).ready(function () { 
    $('.navigation li').hover(
        function () {
            $('ul', this).fadeIn();
        }, 
        function () {
            $('ul', this).fadeOut();        
        }
    );

    // this is where I am attempting to dismiss the drop down list
    // the console output appears just fine, but the drop down list does not
    // go away.
    $('.navigation li').click(function () {
        console.log("clicked");
        $('.ul', this).fadeOut();
    });
});

您可能会注意到,每次单击都会出现两次控制台输出。不确定这意味着什么......

最佳答案

您的目标是 ul , 不是 <ul>标签。

将最后的代码改为:

$('.navigation li').click(function () {
    console.log("clicked");
    $('ul', this).fadeOut(); // changed
});

这通常是简单的事情。 :-)

关于javascript - 单击列表项时关闭下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28883399/

相关文章:

html - 在 css 中固定位置的问题

javascript - 在一系列 float : left divs 中创建/删除一行

jquery - 寻找免费的 IDE/编辑器/插件,根据 JQuery 核心风格指南格式化源代码

javascript - 使用 css-transitions 淡入然后在一段时间后淡出

javascript - 为鼠标移出功能添加延迟

javascript - Backbone.js View 中的 this.el 究竟是什么?

javascript - 如何设置一个间隔,但20分钟后停止

javascript - 无论区域设置如何,HTML 输入[日期] 默认为 mm/dd/yyyy

javascript - 设置jquery slider 两侧的margin-left缓冲区

javascript "use strict"和尼克的查找全局函数