使用Javascript

时间:2015-11-06 05:51:38

标签: javascript jquery conflict magento-1.9 conflicting-libraries

我正在尝试使用combined.js Jquery Sizzle和jQuery核心的合并库来设置响应式菜单,它发布在这里:

https://pastee.org/erewc

但它是eval函数冲突并且当我将它包含在已经加载了许多脚本的页面中时会产生错误,如jQuery(smartWizard)和PrototypeJS。

产生的错误如下:

TypeError: $(...) is null
$('options_2_2').advaiceContainer = 'options-2-container';$('options_2_2').callb...
combined.js > line 623

中的

它涉及到eval功能,所以我不知道如何解决它。我不认为jQuery noConflict会在这里工作,但仍然欢迎提出建议。

1 个答案:

答案 0 :(得分:0)

我不知道这是一个临时解决方案还是永久性解决方案(时间会告诉我),但我设法通过在eval函数调用(在combined.js中)放置条件来解决冲突,如下所示:

if(t.indexOf("$('options_") == -1) {
  e.eval.call(e, t)
}

我确信我的菜单元素在其类或id属性中都没有“options_”。

所以我的冲突现在已经解决,但如果您有一个更好,更清洁的方法来解决永久性解决方案,我们仍然可以自由发布您的答案。