彩盒原型错误:数组长度无效



我有以下代码在colorbox中显示图像:

<script type="text/javascript">
(function($){
$('a.gallery').colorbox({rel:'gal'});
})(jQuery);
</script>

我正在研究的CMS一团糟。它有原型,jquery,jquery-ui等等。

在Firebug控制台中,我得到以下内容:数组长度无效[中断此错误]
这个[i] = 这个[i + 1];

原型.js第 387 行(版本 1.4.0)即:

shift: function() {
var result = this[0];
for (var i = 0; i < this.length - 1; i++)
this[i] = this[i + 1];
this.length--;
return result;
}, 

我得到的只是一个褪色的背景和彩盒角加载(角不会删除)。

jQuery.noConflict(); 也不起作用。

请帮忙!

好的,想通了。 发生这种情况是因为原型.js扩展(以及其他许多)本机Array.prototype.shift函数,并且该扩展包含导致错误的错误。 jQuery在[第2109行])(https://github.com/jquery/jquery/blob/1.7.2/jquery.js#L2109)等地方使用shift。 这就是它对我来说破碎的地方。

我不希望这会帮助 user1722113,但希望它能帮助某人。

我只能想到两个解决方案:

  1. 沟原型.js(更好的解决方案。 一般来说,覆盖本机函数是不好的)
  2. 以某种方式重新初始化 Array.prototype.shift,或者用未损坏的实现替换它

最新更新