【问题标题】:jQuery script doesn't work on FirefoxjQuery 脚本在 Firefox 上不起作用
【发布时间】:2012-05-10 18:34:43
【问题描述】:

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

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

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

【问题讨论】:

  • 哪一部分不行?事件不会触发吗?还是选择器什么也没找到?

标签: jquery jquery-ui firefox


【解决方案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

【讨论】:

  • 它适用于演示,但在我的网站上它不起作用。我将 jQuery 1.7.2 与 jQuery UI 1.8.16 一起使用。与该代码唯一不同的是,在我设置$("#myDiv").draggable(); 之前。为什么它不起作用?
【解决方案2】:

试试这个,如果它不起作用,请告诉我

$('body').click(function(event) {
    target = (window.event) ? window.event.srcElement /* for IE */ : event.target;
    if (!($(target).closest('#myDiv').length>0)) {
        $('#myDiv').hide();
    };
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多