基本上我正在尝试实现诸如新推特的登录.当您单击登录时,会弹出包含字段的div.现在,当我点击div之外的任何地方(div失去焦点)时,div应该消失.
我尝试过How to blur the div element?提到的技术
代码如下
$("body").click(function(evt) { if (evt.target.id !== 'loginDialog') { $("#loginDialog").hide(); } });
麻烦就是target.id不会等于loginDialog,即使我点击某个地方有一个loginDialog在一个子div中说.
所以上面是一个很好的方向,但解决方案是不完整的.
实现这一目标的最佳方法是什么?
解决方法
如果将鼠标移到外面是不够的,并且只有当用户点击它外面时你想让它消失,这里有一个可能对你有所帮助的片段.
$('body').click(function(evt) { if($(evt.target).parents('#loginDialog').length==0) { $('#loginDialog').hide(); } });