gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 21:15:09 24 4
gpt4 key购买 nike

回到我使用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>

这里是process.js

$(document).ready(function(){
$('#submitting_button').click(function(){
$.getScript("./functions/my_function.js");
document.write(calculation());
});
});

最后,这是 my_function.js

console.log("NOTE : my_function.js has been reached");
function calculation(){
var result = 3+4;
return result;
}

因此,当我点击“Valider”按钮时,除了Chrome console displays an error, noticing me that calculation is not defined 之外没有任何反应。 ...我猜这是因为使用 $.getScript() 不是一件好事,但我不知道任何其他函数来加载/读取外部函数。

最佳答案

getScript()异步,因此下一行代码会在该操作完成之前尝试执行。由于操作未完成,该功能确实还不存在。

(请注意,在您的控制台中,错误发生在您将“my_function.js has been reached”记录到控制台之前。)

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

$.getScript("./functions/my_function.js", function () {
document.write(calculation());
});

这样它会在异步操作完成后被调用。

旁注:document.write() 可能会也可能不会做您在这里期望的任何事情。老实说,我不确定此时这个值会写在文档的哪个位置。最好不要使用 document.write() 而是将值设置为 HTML 中的现有元素。像这样的东西:

$('#output').text(calculation());

其中“输出”是您要写入值的某个元素的 id:

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

关于javascript - 如何从 jQuery 脚本调用外部 JS 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45754530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com