Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
让JavaScript在基础中工作有困难_Javascript_Jquery_Magento_Zurb Foundation - Fatal编程技术网

让JavaScript在基础中工作有困难

让JavaScript在基础中工作有困难,javascript,jquery,magento,zurb-foundation,Javascript,Jquery,Magento,Zurb Foundation,我正在尝试运行自定义表单javascript,并不断遇到类型错误。错误是 表单无法初始化;TypeError无法调用方法“indexOf” 未定义的 我似乎不明白为什么会抛出这个错误。看起来这段代码就是罪魁祸首 return arr.indexOf(item) === idx; around line 272 arr对象尝试运行此代码时为null。不确定这是否是由于脚本前面出现的其他错误或其他原因造成的。任何帮助都将不胜感激 arr对象尝试运行此代码时为null 这正是错误所抱怨的 您需要修复

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

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

我似乎不明白为什么会抛出这个错误。看起来这段代码就是罪魁祸首

return arr.indexOf(item) === idx; around line 272
arr对象尝试运行此代码时为null。不确定这是否是由于脚本前面出现的其他错误或其他原因造成的。任何帮助都将不胜感激

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

这正是错误所抱怨的


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

仅供参考,我刚刚遇到了这个问题。这是Prototype.js冲突。基本上,Prototype<1.7.1不会对Array.filter进行polyFill,Prototype版本的方法似乎没有通过第三个参数,即未定义的arr。因此,您可以做一些事情来解决:

将原型升级到1.7.1-这就是我所做的,但我还没有在Magento上彻底测试它,所以可能会出现问题。。。这是一个次要的点释放,可能会出什么问题-

调整基础代码块,这样你就可以得到以前在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>');
您可以尝试重写Array.filter的原型版本,以将数组作为第三个参数传递。我不完全确定它住在哪里,我寻找它,因为这是我第一次倾向于mitgate风险,但我最终决定升级。
我知道这就是错误的来源,但似乎是其他原因导致它为空。这是基金会图书馆的一部分;我查看了他们的bug追踪器,似乎没有其他人有这个问题,这让我相信我做错了什么。尽管像轨道滑块这样的其他元素工作正常。@user398314:我们不知道您是否做错了什么;我们不知道你在做什么或如何做。是的,对此很抱歉,不幸的是,我没有一个供公众查看此网站的位置设置。基本上,我把它集成到一个magento网站中。magento使用prototype,因此jquery没有冲突,不确定这是否与之有关。如果你有任何问题,请告诉我,我会尽力回答