Mootools和纯JS脚本之间的冲突

Mootools和纯JS脚本之间的冲突,mootools,Mootools,我一直在使用一个应该包含在Joomla(1.7,Mootools 1.3.2)中的纯JS脚本 当在库外完美工作时,会引发与库的冲突 示例: 没有工具 用Mootools 第133行附近的Firebug错误: document.getElementById("pu_" + champs[i]) is null 我尝试了各种解决方案,重命名了某些变量,使用$而不是document.getElementById,将每个函数包装成一个匿名函数。无济于事 如果有人能指出正确的方向,我将非常感激。

我一直在使用一个应该包含在Joomla(1.7,Mootools 1.3.2)中的纯JS脚本

当在库外完美工作时,会引发与库的冲突

示例:

  • 没有工具

  • 用Mootools

第133行附近的Firebug错误:

document.getElementById("pu_" + champs[i]) is null
我尝试了各种解决方案,重命名了某些变量,使用$而不是document.getElementById,将每个函数包装成一个匿名函数。无济于事


如果有人能指出正确的方向,我将非常感激。

mootools是典型的

var champs = ['surfaceMaison','surfaceGarage','terrasseCouverte','terrasseNonCouverte','cloture'];
var prix = ['pack','valeur','valeur','valeur'];
var options = ['toitureMultipentes','doucheItalienne','wcSuspendu','enduitTaloche','voletsRoulants','climGainable'];


// and..
for (var i in champs) 


for (var i in options) 
这是不可能的,它将进入原型链,并将mootools添加到阵列原型中

一般来说,
对于对象中的var
作为一种构造,总是用于对象而不是数组。无论如何,它都可以工作,因为在javascript中没有合适的数组类型,它只是一个具有类似数组属性(例如,长度)的对象类型

通过
选项循环数组。每个(函数(el,i){}
或一个普通for循环

此外,您还可以检查
hasOwnProperty

for (var i in champs) 
    if (champs.hasOwnProperty(i)) {
        // do the stuff
    }