不使用eval()从另一个JavaScript文件调用函数

不使用eval()从另一个JavaScript文件调用函数,javascript,php,jquery,Javascript,Php,Jquery,我有一个项目,它有两个同名的文件,data.php和data.js。我正在尝试从list.js运行data.js中的一个函数,list.js是项目中的另一个文件 下面的代码显示了我尝试过的三种不同尝试,但都不起作用。第一个错误是data.php中没有conditionTemplate函数。另外两个抛出错误UncaughtTypeError:无法读取未定义的属性“ConditionTemplate” list.js if (this.filter == "correct") { windo

我有一个项目,它有两个同名的文件,data.php和data.js。我正在尝试从list.js运行data.js中的一个函数,list.js是项目中的另一个文件

下面的代码显示了我尝试过的三种不同尝试,但都不起作用。第一个错误是data.php中没有conditionTemplate函数。另外两个抛出错误UncaughtTypeError:无法读取未定义的属性“ConditionTemplate”

list.js

if (this.filter == "correct") {
    window["condtionTemplate"](true);
    window["data"]["condtionTemplate"](true);
    window["data.js"]["condtionTemplate"](true);
}
list = new listFiler();
list.prototype.condtionTemplate = function(status) {
    if (status) {
        main_buttons.enabled("next", false);
    } else {
        main_buttons.enabled("back", true);
    }
}
这就是我试图访问的函数inside data.js

data.js

if (this.filter == "correct") {
    window["condtionTemplate"](true);
    window["data"]["condtionTemplate"](true);
    window["data.js"]["condtionTemplate"](true);
}
list = new listFiler();
list.prototype.condtionTemplate = function(status) {
    if (status) {
        main_buttons.enabled("next", false);
    } else {
        main_buttons.enabled("back", true);
    }
}
data.php

<body>    
    <script src="javascript/list.js?1" type="text/javascript"></script>
    <script src="javascript/data.js?1" type="text/javascript"></script>
</body>

HTML:

<script src="data.js" />
<script src="list.js" />
<script>
   condtionTemplate() ...
</script>

ConditionTemplate()。。。

首先将加载顺序更改为

<script src="javascript/data.js?1" type="text/javascript"></script>
<script src="javascript/list.js?1" type="text/javascript"></script>
使用实例

var list = new listFiler();
使用ConditionTemplate

if (this.filter == "correct") { 
    list.condtionTemplate(true);
}

您是否加载了data.js?什么是
列表
?类型,而不是文件。@thomas更新了问题<代码>列表过滤器是第一个代码块所在的位置is@NinaScholz是的,inside data.php请添加data.php、data.js和list.js的相关部分谢谢您的回答。但是,这在这种情况下不起作用。我需要从list.js文件中运行conditionTemplate。很抱歉,这样做是没有办法的。如果我使用eval(),它会起作用,但是从研究结果来看,这不是一个好的做法。我想我是想把事情复杂化了。