javascript - 隐藏模糊列表

标签 javascript jquery focus onblur

当我单击按钮时,会显示一个列表,问题是我想在列表失去焦点时隐藏该列表,即用户单击页面上的任意位置,但不在该列表上。我怎样才能做到这一点?此外,您还可以在 last.fm 中查看它的外观,其中包含配置文件设置列表 (li.profileItem)。 (ul.del li ul 默认为 display:none) 基本列表结构:

<ul class='del'>
    <li>
        <button class='deletePage'></button>
        <ul>
            <li></li>
            <li></li>
        </ul>
    </li>
</ul>

我的显示此列表的函数:

$(".deletePage").click(function(){
    if( $(this).siblings(0).css("display") == "block" ){
        $(this).siblings(0).hide();
    } else {
        $(this).siblings(0).show();
    }
});

最佳答案

参见How to detect a click outside an element?

您可以将一个click 处理程序绑定(bind)到document 以隐藏列表,然后将一个单独的处理程序附加到调用event.stopPropagation 的按钮。 .

$(document).click(function() {
 $('.list-to-hide').hide();
});

$('.show-list-button').click(function(event) {
 event.stopPropagation();
});

或者,您可以使用 jQuery outside events plugin :

$('.show-list-button').bind('clickoutside', function() {
 $('.list-to-hide').hide(); 
});

关于javascript - 隐藏模糊列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2540728/

相关文章:

javascript - 按字符串属性值对对象数组进行排序

javascript - 让 JEditable 处理新元素 (.live)

javascript - 如何在 Ajax 中获取 Response 数据字符集?

html - 专注于搜索不起作用

ios - Phonegap CSS :focus and/or :active on button not working

javascript - 将filter() 与includes() 一起使用的替代方法

javascript - d3js 在传单 map 上强制布局

javascript - 从 javascript 数组中添加/创建/删除项目,有什么想法吗?

javascript - 触发嵌套在 AJAX 页面中的多个 javascript

javascript - HTML 和 Javascript : How to manage element focus?