我在这个网站上使用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>'
});
}
});
答案 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'
}
}
});
它现在正在运作。
感谢大家的帮助!