0

我正在尝试使用combined.jsJquery 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会在这里工作,仍然欢迎提出建议。

4

1 回答 1

0

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

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

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

所以我的冲突现在已经解决了,但如果你有更好、更干净的方法来永久解决,请随时发布你的答案。

于 2015-11-06T06:24:20.917 回答