【问题标题】:Prototype and jQuery Issue this._each is not a function原型和 jQuery 问题 this._each 不是函数
【发布时间】:2012-02-26 02:06:42
【问题描述】:

我正在开发一个 Magento 网站,但在 IE7+8 中出现错误 + 在我的 firebug 控制台中出现错误:

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

我在 jQuery 包含上没有冲突,这没有什么区别,我所有的脚本仍然可以正常运行,但是如果你查看网站上的代码并删除 idTabs.js,错误就会消失......我真的被绊倒了这个,现在已经花了一个多小时试图弄清楚!

http://www.haircarepro.co.uk

任何帮助将不胜感激!感谢您的宝贵时间。

【问题讨论】:

  • 如果我粘贴代码,这个问题会很大。我已经概述了上面的问题,如果您查看 firebug 中的错误控制台,您可以看到我的错误,如果您删除 idtabs.js,错误就会消失,但所有脚本都可以工作。

标签: jquery magento prototypejs


【解决方案1】:

问题似乎是第 63 行 idtabs.js 插件中的 each 函数。它似乎正在寻找一个名为 each 的原型函数而不是 jQuery 函数。

尝试改变:

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

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

使用 jQuery 的 each 函数而不是试图在 Prototype.js 中找到它

【讨论】:

  • 谢谢,但是这不起作用,仍然出现错误:(
【解决方案2】:

每次你将 .each() 与原型和 jQuery 一起使用时,循环内都会有一个作为函数的元素。 因此,当尝试在 .each() 循环内的元素上使用其他 jQuery 函数时,大多数情况下,当它到达最后一个元素时,它会抛出错误或有错误的行为。

这可能不是最好也不是最快的解决方案,但我通常通过检查循环内的元素是否属于我需要的类型或具有以下功能的函数来修复它:

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

在尝试将 jQuery 库与 Magento 一起使用时,这个问题很常见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多