我正在尝试在我的一个网站中使用jQuery实现内容滑块;但是我一直收到这个错误:
missing } after property list
这是我的代码:
<script type='text/javascript'>
featuredcontentslider.init({
id: 'slider1',
contentsource: ['inline', ''],
toc: '#increment',
nextprev: ['prev', 'next'],
revealtype: 'click',
enablefade: [true, 0.1],
autorotate: [true, 3000]
});
</script>
当我点击Firefox中的视图源时,我发现最后一个花括号丢失,但在文件中代码很好,并且使用firebug调试控制台我得到了这个错误:
missing } after property list
我尝试了很多东西,搜索了缺少的逗号,消除了大部分行,但找不到问题的根源。
编辑: Firebug指向这一行:
});
作为有错误的人。
我刚刚检查了IE8,Chrome和firefox中的脚本,并且在所有三个浏览器中我都得到了这样的代码:
<script type='text/javascript'>
featuredcontentslider.init({
id: 'slider1',
contentsource: ['inline', ''],
toc: '#increment',
nextprev: ['prev', 'next'],
revealtype: 'click',
enablefade: [true, 0.1],
autorotate: [true, 3000]
); <---- notice the missing bracket
</script>
我也尝试过只写一行:
featuredcontentslider.init({ id: 'slider1' });
仍然以同样的错误结束。在localhost中,脚本运行正常,但在实际网站中脚本运行正常。
我想知道页面中的其他js代码是否有可能影响这个代码的行为?
答案 0 :(得分:3)
嗯......这闻起来有点像网站缓存错误。
也许}
一次丢失了,即使您修复了它,您的网站仍在提供旧文件。
你试过了吗?
curl
或wget
查看原始javascript文件(以查看是否存在过时的服务器端缓存)答案 1 :(得分:2)
当属性列表被“;”意外关闭时,通常会发生这种情况。 看一下下面的例子(产生相同的错误):
$('#test').dialog({
autoOpen: true,
resizable: true,
draggable: true,
width:530,
modal: true,
closeOnEscape: true,
show: {
effect: 'blind',
duration: 1000
},
hide: {
effect: 'fold',
duration: 1000
});
});
The ;;之后
hide: { ... });
应该删除。
答案 2 :(得分:1)
好的我通过添加一个额外的花括号解决了这个问题,但我不确定为什么解决了这个问题。我的最终脚本如下所示:
<script type='text/javascript'>
featuredcontentslider.init({
id: 'slider1',
contentsource: ['inline', ''],
toc: '#increment',
nextprev: ['prev', 'next'],
revealtype: 'click',
enablefade: [true, 0.1],
autorotate: [true, 3000]
} <--- notice the extra bracket
});
</script>
并且它是跨浏览器兼容的:)