Javascript错误导致fancybox无法在Firefox上运行

时间:2013-06-11 20:09:41

标签: javascript jquery

我在这个网站上使用js没有冲突http://tidypools.com/tid-temp

Fancy box无法在firefox上运行。当我使用firebug时,它会给我以下错误:

  

错误行:99

Safari也出错:

  

TypeError:'[object Object]'不是一个函数(靠近'...})(jQuery); //关闭否......')

当我打开脚本行99时,它是我脚本中的最后一行:

})(jQuery); //CLOSE NO CONFLICT//

我尝试过js清洁剂,取下括号,分号,移动等等......似乎没什么用。知道什么是错的。谢谢你一个人。

以下是js http://tidypools.com/tid-temp/js/plugins.js的链接,因为它比在此处复制更容易阅读。


@Kreshnik Hasanaj

以下是plugin.js文件中的花式框代码:

        // ******************************** LIGHTBOX ********************************
    $(".fancybox").fancybox();
    $(".grouped_elements").fancybox({
        helpers: {
            title: {
                type: 'inside'
            }
        }
    })
});
// ******************************** LIGHTBOX MOBILE ********************************
$(".mobile_grouped_elements").attr('rel', 'gallery').fancybox({
    padding: 0,
    margin: 5,
    nextEffect: 'none',
    prevEffect: 'none',
    autoCenter: true,
    afterLoad: function() {
        $.extend(this, {
            aspectRatio: true,
            type: 'html',
            width: '90%',
            height: '80%',
            content: '<div class="fancybox-image" style="background-image:url(' + this.href + '); background-size: cover; background-position:50% 50%;background-repeat:no-repeat;height:100%;width:100%;" /></div>'
        });
    }
});

2 个答案:

答案 0 :(得分:1)

从代码的第一眼看,问题并不明显。

你有这个:

//**************************************************************************
// ******************************** NO CONFLICT ********************************
jQuery.noConflict() // return `$` to it's previous "owner"
(function($) { // in here you're assured that `$ == jQuery`

// ... left out code that is not important for the problem ....

})(jQuery); //CLOSE NO CONFLICT//

此部分的问题是在jQuery.noConflict()之后您错过了;

对于JS解释器,它看起来像:

jQuery.noConflict()(
    function($) {
    }
})(jQuery);

由于jQuery.noConflict()未返回函数,因此会出现此错误。 为避免此类问题,即使在某些情况下可以省略,也要添加;

答案 1 :(得分:0)

<强>更新

除了错过t.niese所述的分号外,我才意识到我在第一个灯箱代码的第8行有一个额外的“})”,这导致了问题。

我把它改成了

// ******************************** LIGHTBOX ********************************
    $(".fancybox").fancybox();
    $(".grouped_elements").fancybox({
        helpers: {
            title: {
                type: 'inside'
            }
        }
    });

它现在正在运作。

感谢大家的帮助!