0

我有一个我无法弄清楚的奇怪错误,所以我正在寻求帮助。我正在使用 Zurb Foundation 建立一个 Magento 商店,对于图像我决定使用他们的交换脚本,但是它并没有像预期的那样工作。由于某种原因,它完全从 dom 中删除了图像标签,而不是切换图像。起初我以为这是原型/jquery/基础冲突,但似乎并非如此。

这是一个带有错误的页面的链接 - http://www.dressaccent.com/magento/jovani-4247-vechernee-plat-e-27356,您可以在那里看到图像,但只要 jquery/foundation 启动它消失了。

4

2 回答 2

3

我也有这个问题。感谢@richkrirk 的解决方案。我想发布 Foundation 5.3.x 的更新版本

      if (/IMG/.test(el[0].nodeName)) {
        var orig_path = el[0].src;

        if (new RegExp(path, 'i').test(orig_path)) return;

        el[0].src = path;

        //return trigger(el[0].src);
        return;
      }
      var last_path = el.data(this.data_attr + '-last-path'),
          self = this;

      if (last_path == path) return;

      if (/\.(gif|jpg|jpeg|tiff|png)([?#].*)?/i.test(path)) {
        $(el).css('background-image', 'url('+path+')');
        el.data('interchange-last-path', path);
        //return trigger(path);
        return;
      }

      return $.get(path, function (response) {
        el.html(response);
        el.data(self.data_attr + '-last-path', path);
        //trigger();
      });

基本上,为每个 trigger() 调用添加注释。但是,您需要保留返回语句,否则它将在 IMG 标记上设置背景图像样式。

于 2014-07-22T22:03:32.103 回答
1

我在使用 Magento 实施 Foundation 5 时遇到了同样的问题。Interchange 会加载内容,但 div 或图像容器本身会从 DOM 中消失。

我设法通过在foundation.interchange.js 的第65 行注释掉触发器来让它工作

        el.data('interchange-last-path', path);
        //trigger();
      });

然后它工作正常。我确信这不是最好的解决方案,但它对我有用。

编辑:要让它也适用于 IMG,您还需要像这样为它们注释掉触发器:

if (/IMG/.test(el[0].nodeName)) {
        var orig_path = el[0].src;

        if (new RegExp(path, 'i').test(orig_path)) return;

        el[0].src = path;

        //return trigger(el[0].src);
      }
      var last_path = el.data('interchange-last-path');

      if (last_path == path) return;

      return $.get(path, function (response) {
        el.html(response);
        el.data('interchange-last-path', path);
        //trigger();
      });
于 2013-12-24T11:31:06.210 回答