【问题标题】:Having trouble getting the forms javascript working within foundation无法让表单 javascript 在 Foundation 中工作
【发布时间】:2014-05-15 01:26:43
【问题描述】:

我正在尝试运行基础自定义表单 javascript 并不断遇到类型错误。错误是

表单无法初始化; TypeError 无法调用方法'indexOf' 未定义”

我似乎无法弄清楚为什么会抛出这个错误。看来这段代码是罪魁祸首

return arr.indexOf(item) === idx; around line 272

arr 对象在尝试运行此代码时为空。不确定这是否是由于脚本早期出现其他问题或其他原因造成的。任何帮助将不胜感激。

【问题讨论】:

    标签: javascript jquery magento zurb-foundation


    【解决方案1】:

    arr 对象在尝试运行此代码时为空

    这正是错误所抱怨的。

    您需要修复代码以确保arr 不为空,或者在为空时避免使用它。

    【讨论】:

    • 我知道这是错误的来源,但似乎它可能是其他东西实际上导致它为空。这是基础库的一部分;我查看了他们的错误跟踪器,但似乎没有其他人有这个问题,这让我相信这是我做错了。虽然轨道滑块等其他元素工作正常。
    • @user398314:我们不知道你是否做错了什么;我们对您在做什么或如何做一无所知。
    • 是的,很抱歉,很遗憾,我没有设置供公众查看此站点的地方。基本上我将它整合到一个magento网站中。 (magento 使用原型,所以 jquery 没有使用冲突,不确定这是否与它有关。)如果您有任何问题,请告诉我,我会尽力回答
    【解决方案2】:

    仅供参考,我刚遇到这个。这是一个 Prototype.js 冲突。基本上,Prototype Array.filter 做 ployfill,并且 Prototype 的方法版本似乎没有传递第三个参数,即 arr 那是 undefined。所以你可以做几件事来解决:

    1. 将 Prototype 升级到 1.7.1 - 这是我所做的,但我尚未在 Magento 上对其进行彻底测试,因此可能存在问题...这是一个小问题,可能会出现什么问题? :-)
    2. 调整Foundation代码块,让你事先得到一个var编译的类列表,然后你可以在回调中引用它来过滤:

        // OLD
        $customSelect = $('<div class="' + ['custom', 'dropdown', customSelectSize].concat(copyClasses).filter(function (item, idx, arr) {
          if (item === '') return false;
          return arr.indexOf(item) === idx;
        }).join(' ') + '"><a href="#" class="selector"></a><ul /></div>');
      
        //-----------------
        // NEW
        var classList = ['custom', 'dropdown', customSelectSize].concat(copyClasses);
        $customSelect = $('<div class="' + classList.filter(function (item, idx, arr) {
          if (item === '') return false;
          arr = typeof arr === 'undefined' ? classList : arr;
          return arr.indexOf(item) === idx;
        }).join(' ') + '"><a href="#" class="selector"></a><ul /></div>');
      
    3. 您可以尝试覆盖Array.filter 的原型版本以将数组作为第三个参数传递。我不完全确定它在哪里,我一直在寻找它,因为这是我降低风险的第一个倾向,但我最终决定升级。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-05
      • 1970-01-01
      • 1970-01-01
      • 2015-08-26
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      • 2015-04-07
      相关资源
      最近更新 更多