这是问题.. 我有一个名为 javascript.js 的javascript文件,如下所示
$(document).ready(function(){
function init()
{
//code goes here
}
}
现在index.html文件有一个命令按钮,它应该调用init()函数。
<html>
<head><script src=javascript.js ....></script>
<body><button type="button" onclick="init()">Call Init!</button></body>
</html>
但它没有称之为。没有任何事情按预期发生。请提出解决方案。
答案 0 :(得分:7)
您应该在$(document).ready()
范围之外定义您的功能。
答案 1 :(得分:3)
onclick
属性将在全局上下文中执行。您的init
函数的作用域是您传递给jQuery的匿名函数。三种解决方案:
init
功能移到就绪功能之外,进入全局范围init
函数成为全局对象的属性来导出window.init = function() {…};
函数:$("button").click(function init() {…});
id
更好地使用{{1}}来引用按钮。答案 2 :(得分:2)
尝试在Chrome中查看该页面。点击F12查看控制台。您将能够快速调试该问题。但是,乍一看,我确实看到你的$(document).ready函数未正确关闭。添加');'在您包含的代码的末尾。另外,在脚本标记中添加javascript.js周围的引号。看看是否有帮助。
答案 3 :(得分:1)
为什么不使用
function init()
{
$(document).ready(function() {
//code goes here
});
}
你也可以使用flag来跟踪“// code goes here”是否继续。因此,如果文档尚未准备就绪,您可以使用带有setTimeOut函数的while循环一些暂停间隔“为了不挂起客户端浏览器”。