Javascript 并关注后代元素

标签 javascript jquery css twitter-bootstrap

请查看 JSFiddle:

$('#contacts .tab-content').focusout(function () {
    $('#contacts .active').removeClass('active');
});

JSFiddle

我在页面底部有一个 (Bootstrap 3) 面板,当我点击它的标签时它会弹出,当我点击它以外的任何其他地方时它会返回。为此,我将焦点放在面板上,并在失去焦点时删除 .active 类。问题是,如果我单击面板内的任何其他可聚焦元素(如输入或按钮),它也会失去焦点并触发该功能。如何在面板中包含所有元素并在没有焦点时删除 .active 类?

最佳答案

$('#contacts > .nav-tabs a').click(function() {
    $('#contacts .tab-content').focus();
    $('#panel').toggleClass('active');
});

$(document).click(function(e){
    if(!$(event.target).closest( ".tab-content" ).length && !$(event.target).closest( ".nav-tabs a" ).length){
        $('#panel').removeClass('active');
    }
});

检查一次

关于Javascript 并关注后代元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28325138/

相关文章:

javascript - 在表单输入上按回车键使其失去焦点

javascript - JQuery:整个表单上的.focus() 事件?如何?

html - 在不更改子标签 CSS 的情况下防止子标签宽度

javascript - 根据图像主色更改背景颜色?

javascript - 如何使用 $.getJSON 编写异步?

javascript - 使用 <a> 删除 url 中的目录

jquery - Restful Webservices 比较 WebAPI 与 MVC

javascript - 刷新页面,直到特定的字符串出现在页面的某个部分

javascript - 如何在 Chrome 扩展中使用 Javascript 保护或隐藏 oAuth CLIENT_SECRET?

javascript - 删除文件,文件属性无法读取未定义