经过多次调试,我得出结论这两个库正在发生冲突。我分别测试了它们并且它们可以工作但是当一起使用时(并且有一个 rel 属性会破坏)
如何重现
- 如果链接有 rel 或 $('something').colorbox({rel:'something'});
- $('somethingelse').bxSlider(...);
单击具有颜色框(不仅仅是共享选项)的任何图像时,颜色框将失败使用:
未捕获的类型错误:无法读取未定义的属性“rel”
有问题的代码行是:
if (settings.rel !== 'nofollow') { $related = $('.' + boxElement).filter(function () { var relRelated = $.data(this, colorbox).rel || this.rel; return (relRelated === settings.rel); });
我发现了一个类似的问题我是否使用 jQuery noconflict 来避免插件冲突?但是效果不同。然而,原因似乎相似。根据回答该问题的人的说法,问题在于 bxSlider 抽出了由 colorbox 设置的 $.data() 。
所以我的问题是:
- 有没有解决的办法?
- 它是彩盒中的错误吗?
- 它是 bxSlider 中的错误吗?