我从StackOverflow 上的一个问题中获取了以下代码:
$('body').click(function(event) {
if (!$(event.target).closest('#myDiv').length) {
$('#myDiv').hide();
};
});
唯一的问题是在 Firefox 上(在 Safari 上工作)不起作用。这是为什么?我应该如何更改它以使其与 Firefox 兼容?
$(function() {
$('body').click(function(event) {
var targ;
if (event.target) targ = event.target;
else if (event.srcElement) targ = event.srcElement;
if (targ.nodeType == 3) // defeat Safari bug
targ = targ.parentNode;
if (!$(targ).closest('#myDiv').length) {
$('#myDiv').hide();
};
});
});
DEMO
在 div 外点击会隐藏 div!$(targ).closest('#myDiv').length
试试这个,让我知道它是否不起作用
$('body').click(function(event) {
target = (window.event) ? window.event.srcElement /* for IE */ : event.target;
if (!($(target).closest('#myDiv').length>0)) {
$('#myDiv').hide();
};
});