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