magento Prototype和jQuery发出这个._each不是函数

oogrdqng  于 2022-11-12  发布在  jQuery
关注(0)|答案(2)|浏览(123)

我正在开发一个Magento网站,我在IE7+8 +中得到一个错误在我的Firebug控制台中的错误:

this._each is not a function
[Break On This Error]   
this._each(function(value) {

我在jQuery include上没有任何冲突,这没有什么区别,我所有的脚本仍然像它们应该的那样运行,但是如果你看一下网站上的代码并删除idTabs.js,错误就会消失...我真的被这个问题绊倒了,现在已经花了一个多小时试图弄清楚!
http://www.haircarepro.co.uk
任何帮助都将不胜感激!感谢您的时间。

sycxhyv7

sycxhyv71#

问题似乎出在第63行idtabs.js插件中的each函数上。它似乎在查找名为each的Prototype函数,而不是jQuery函数。
尝试更改:

return this.each(function(){ jQuery.idTabs(this,s); }); //Chainable

return jQuery(this).each(function(){ jQuery.idTabs(this,s); }); //Chainable

使用jQuery的each函数,而不是尝试在Prototype.js中查找它

brccelvz

brccelvz2#

每次在prototype和jQuery中使用.each()时,循环中都会有一个最后的元素是函数。因此,当尝试在a each()循环中的元素上使用其他jQuery函数时,大多数情况下,当它到达最后一个元素时,会抛出错误或具有错误的行为。
这可能不是最好也不是最快的解决方案,但我通常通过检查循环内的元素是否是我需要的类型或函数来修复它:

if (typeof v === 'function') {
    continue;
}

在Magento中使用jQuery库时,这个问题很常见。

相关问题