5

经过多次调试,我得出结论这两个库正在发生冲突。我分别测试了它们并且它们可以工作但是当一起使用时(并且有一个 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 中的错误吗?
4

2 回答 2

1

我知道自从提出这个问题以来已经有很长时间了,但是我遇到了类似的问题,经过一番苦苦挣扎后,对我来说,错误是我在 bxslider 之前调用了 colorbox,我更改了调用的顺序,它就像一个魅力。也许有人会因此得到帮助。

于 2014-06-03T11:51:01.623 回答
0

如果没有看到更多你的代码,我不知道你想做什么。你$('something').colorbox({rel:'something'});看起来有点奇怪,我不知道你是在插入类、id 还是实际的 rel 属性值。您可能想要查看颜色框的 rel 选项(rel:'something')及其行为方式。见http://www.jacklmoore.com/colorbox

一起使用这两个插件没有任何问题。我在 jsbin 上尝试过,它工作正常,没有错误。

自己看这里:http: //jsbin.com/ovucuz/11/edit#javascript,html,live

于 2012-07-15T16:50:31.833 回答