Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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 如何从jQuery脚本调用外部JS函数?_Javascript_Jquery - Fatal编程技术网

Javascript 如何从jQuery脚本调用外部JS函数?

Javascript 如何从jQuery脚本调用外部JS函数?,javascript,jquery,Javascript,Jquery,回到我使用Node.js的时候,我曾经使用fs.readFileSync(filename)调用我的外部函数,其中filename是要加载的文件的名称 这可能很奇怪,但现在我正在使用jQuery,我有点迷路了 目前我正在收集3个不同的文件(一个是.html,另外两个是.js),下面是它们的外观: 这里是test.html <body> <button id="submitting_button">Valider</button> <!-

回到我使用Node.js的时候,我曾经使用
fs.readFileSync(filename)
调用我的外部函数,其中
filename
是要加载的文件的名称

这可能很奇怪,但现在我正在使用jQuery,我有点迷路了

目前我正在收集3个不同的文件(一个是
.html
,另外两个是
.js
),下面是它们的外观:

这里是
test.html

<body>
    <button id="submitting_button">Valider</button>

    <!--//////////////////////-->
    <!-- Loads jQuery library -->
    <script src="jQuery/jquery.js"></script>
    <!-- Loads my jQuery script -->
    <script src="jQuery/process.js"></script>
</body>

最后,这里是
my_function.js

$(document).ready(function(){
    $('#submitting_button').click(function(){
        $.getScript("./functions/my_function.js");
        document.write(calculation());
    });
});
console.log("NOTE : my_function.js has been reached");
function calculation(){
    var result = 3+4;
    return result;
}

因此,当我点击«Valider»按钮时,除了以下事实外,什么都没有发生。。。我猜这是因为使用
$.getScript()
不是一件好事,但我不知道还有其他函数可以加载/读取外部函数。

getScript()
是异步的,因此下一行代码将在该操作完成之前尝试执行。由于操作尚未完成,该函数实际上还不存在

(请注意,在控制台中,错误发生在您将“my_function.js已到达”登录到控制台之前。)

不要在下一行代码中执行它,而是在
getScript()
的回调中执行它:

这样,它将在异步操作完成后调用

旁注:
document.write()
可以做也可以不做您在这里期望的任何事情。老实说,我不确定此时该值将写入文档中的何处。最好不要使用
document.write()
,而是将该值设置为HTML中的现有元素。比如:

$('#output').text(calculation());
其中“output”是要在其中写入值的某个元素的
id

<span id="output"></span>

使用getscript的回调方法,即
$.getscript(“./functions/my_function.js”,function(){document.write(calculation());})$.getScript()很好,可能是程序员的问题
<span id="output"></span>