我有以下代码在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,但希望它能帮助某人。
我只能想到两个解决方案:
- 沟原型.js(更好的解决方案。 一般来说,覆盖本机函数是不好的)
- 以某种方式重新初始化 Array.prototype.shift,或者用未损坏的实现替换它