jQuery脚本不适用于Firefox

时间:2012-05-10 18:34:43

标签: jquery jquery-ui firefox

我在StackOverflow上从a question获取了以下代码:

$('body').click(function(event) {
    if (!$(event.target).closest('#myDiv').length) {
        $('#myDiv').hide();
    };
});

唯一的问题是在Firefox上(在Safari上工作)不起作用。这是为什么? 我应该如何更改它以使其与Firefox兼容?

2 个答案:

答案 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();
    };
});