3

我有一堆小的弹出页面,它们被设计为在失去焦点时自动关闭 - 即用户单击父文档。

不幸的是,在 IE8 中,当用户开始在弹出页面中填写输入表单时,也会出现模糊。实际上,单击表单内的任何位置都会导致这种情况,甚至当用户不小心单击了某些文本时也是如此。这些项目似乎不是弹出文档的一部分。

我怎样才能让它们如此呢?

这是我在几个弹出窗口中使用的模糊代码(在 .js 脚本中):

var fClose=0 

onload=function() {   
 fClose=0  
 setTimeout("doClose()",111);  
 document.onblur=Blur_Me;  
 document.onfocusout = Blur_Me;  
}  

function Blur_Me(){  
 fClose=1;  
 setTimeout("doClose()",111);  
}    
function doClose(){  
 if(fClose)close();  
}
4

1 回答 1

2

blur()您可以使用 jQueryfocusin()和处理程序来代替使用focusout()

当某个元素或其中的任何元素获得焦点时,该focusin事件将被发送到该元素。

当某个元素或其中的任何元素失去焦点时,该focusout事件将被发送到该元素。

这些与 blur() 不同,因为它支持检测父元素失去焦点(换句话说,它支持事件冒泡)。

于 2012-12-25T19:07:18.850 回答