当它失去焦点时如何隐藏div?

sha*_*shi 3 jquery javascript-events

基本上我正在尝试实现一个登录,例如新推特的登录.当您单击登录时,会弹出包含字段的div.现在,当我点击div之外的任何地方(div失去焦点)时,div应该消失.

我已经尝试过如何模糊div元素中提到的技术

代码如下

$("body").click(function(evt) {

            if (evt.target.id !== 'loginDialog') {
                $("#loginDialog").hide();
            }
        });
Run Code Online (Sandbox Code Playgroud)

麻烦就是target.id不会等于loginDialog,即使我点击某个地方有一个loginDialog在一个子div中说.

所以上面是一个很好的方向,但解决方案是不完整的.

实现这一目标的最佳方法是什么?

pes*_*taa 8

如果将鼠标移到外面是不够的,并且只有当用户点击它外面时你想让它消失,这里有一个可能对你有帮助的片段.

$('body').click(function(evt) {
    if($(evt.target).parents('#loginDialog').length==0) {
        $('#loginDialog').hide();
    }
});
Run Code Online (Sandbox Code Playgroud)