在属性列表之后丢失}

我正试图在我的一个网站上使用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代码可能会影响这个代码的行为?

嗯……这闻起来有点像网站缓存错误。

也许}一次失踪了,即使你修复了它,你的网站仍在提供旧文件。

你有没有尝试过:

  • 清除浏览器中的缓存? (看看它是否是浏览器端)
  • 使用curlwget查看原始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: { ... }); 

应该删除。

好的我通过添加一个额外的花括号解决了这个问题,但我不确定为什么解决了这个问题。 我的最终脚本如下所示:

  

它是跨浏览器兼容的:)