我在StackOverflow上从a question获取了以下代码:
$('body').click(function(event) {
if (!$(event.target).closest('#myDiv').length) {
$('#myDiv').hide();
};
});
唯一的问题是在Firefox上(在Safari上工作)不起作用。这是为什么? 我应该如何更改它以使其与Firefox兼容?
答案 0 :(得分:1)
这是从Which HTML element is the target of the event?
复制的旧技巧$(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
答案 1 :(得分:0)
试试这个并告诉我它是否有效
$('body').click(function(event) {
target = (window.event) ? window.event.srcElement /* for IE */ : event.target;
if (!($(target).closest('#myDiv').length>0)) {
$('#myDiv').hide();
};
});