我在我的网站上使用FancyBox 1.3.1 jQuery插件。从jQuery 1.4.1切换到1.9.1后,我开始收到此错误消息:
未捕获错误:语法错误,无法识别的表达式: 一个[相对=收藏夹[ArticleImages]]
我尝试将选择器更改为jQuery documentation:
中描述的内容$('a[rel="lightbox[ArticleGallery]"]')
但这也不起作用,所以任何帮助都会受到赞赏。
答案 0 :(得分:2)
您必须对选择器中的方括号使用转义字符反斜杠\
。
更改
$('a[rel="lightbox[ArticleGallery]"]')
到的
$('a[rel="lightbox\\[ArticleGallery\\]"]')
答案 1 :(得分:1)
转义[
运算符..因为jquery将此视为属性选择器
$('a[rel="lightbox\\[ArticleGallery\\]"]')
答案 2 :(得分:0)
答案由几个部分组成,所以我只想总结一下答案:
在jQuery 1.9.1中,您必须转义选择器中的方括号。请参阅Adil的答案。
从较旧版本的jQuery迁移到1.9.1时,您可以使用migration.js文件来确保任何旧的第三方插件仍然有效。请参阅FrançoisWahl的评论。
但就我而言,这些建议都没有奏效。我仍然收到相同的错误消息。
所以我做的是迁移到fancyBox2,但后来发现了另一个问题:
我的网站使用的是Twitter Bootstrap 2.3.0,它与fancyBox2不兼容。幸运的是,我在this forum thread找到了答案。
我不得不在bootstrap.js文件中改变这段代码:
.on('.dropdown-menu', function (e) { e.stopPropagation() })
对此:
.on('click.dropdown-menu', function (e) { e.stopPropagation() })
现在它有效。谢谢你帮忙。