【问题标题】:TypeError: image.elevateZoom is not a function: Failure in Magento 1.9 RWD themeTypeError:image.elevateZoom 不是函数:Magento 1.9 RWD 主题失败
【发布时间】:2014-07-09 06:16:57
【问题描述】:

在 Magento 1.9 CE 中,如果我们浏览产品评论页面,它会显示错误

TypeError: image.elevateZoom 不是函数

这是因为,magento 正在使用 plugin 放大产品页面中的图像

JavaScript 解释器,由于在此页面上关闭失败,JavaScript 未执行。这会导致页面功能下降。

谁能帮我解决这个错误,以便我可以在这个页面上使用js?

These 人说他们已经解决了问题,但我无法得到解决方案。

我也问过同样的问题question on Magento Stack

【问题讨论】:

  • 文件路径为design/frontend/rwd/default/template/review/product/view/list.phtml

标签: javascript php jquery magento


【解决方案1】:

我也遇到了同样的问题 - 并不是说​​它是一个完整的解决方案,但它肯定会暂时停止错误,方法是停止在评论页面上调用的函数。

在文件/skin/frontend/rwd/default/js/app.js中

第 649 行更改

image.elevateZoom();

if ($('.review-product-list').length == 0) {
image.elevateZoom();
}

【讨论】:

  • 很高兴能提供帮助。
  • 请您在magento.stackexchange.com/questions/26354/…magento.stackexchange.com/questions/26354/…magento 堆栈中发布关于实际问题的相同答案
  • 我强烈建议不要直接从 rwd/default 主题内部编辑 app.js。相反,将其复制到 skin/frontend/rwd/YOUR_THEME/js/app.js(将 YOUR_THEME 替换为您的实际主题名称)。这样,如果您升级 Magento,您的修复将不会被撤消。不幸的是,这个 app.js 似乎引发了很多错误,尽管自 1.9 发布以来进行了几次小更新,但核心开发团队几乎没有采取任何措施来修复它们
  • 好点,梅奥吉。我也建议这样做 - 在回答时我对 Magento 还很陌生,并且由于自己遇到同样的问题而只知道修复:)
【解决方案2】:

我们刚刚为一个客户遇到了这个问题。这已通过将引用的脚本从最小版本更改为完整版本来解决。所以替换这个:

<action method="addItem"><type>skin_js</type>   
  <script>js/lib/elevatezoom/jquery.elevateZoom-3.0.8.min.js</script>
</action>

有了这个:

<action method="addItem"><type>skin_js</type> 
  <script>js/lib/elevatezoom/jquery.elevateZoom-3.js</script>
</action>

错误已解决,缩放功能正常。

【讨论】:

  • 你在哪里改的?
【解决方案3】:

打开app/design/frontend/your-package/your-theme/template/catalog/product/view/media.html在代码下方评论

<!-- <script type="text/javascript">
    // <![CDATA[
        Event.observe(window, 'load', function() {
            product_zoom = new Product.Zoom('image', 'track', 'handle', 'zoom_in', 'zoom_out', 'track_hint');
        });
    //]]>
    </script> -->

【讨论】:

    【解决方案4】:

    我遇到了同样的问题,经过长时间的搜索后,我使用了这段代码,一切正常。我在elevateZoom函数之前使用var $j = jQuery.noConflict();

    <script>
    // Avoid PrototypeJS conflicts, assign jQuery to $j instead of $
     var $j = jQuery.noConflict();
        $("#zoom_07").elevateZoom({});
    
    </script>
    

    【讨论】:

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